如何用ascii值替换字符串中的偶数值?

egmofgnx  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(413)

假设我有一个字符串作为 ABCDEFG . 我想用ascii值替换这个字符串的偶数值。我该怎么办?

//STRING IS STORED IN str
for (int i = 0; i < str.length(); i++) {
    if (i % 2 != 0) { //FOR EVEN SPACES
        int m = str.charAt(i);
        //GOT ASCII VALUE OF even spaces
        System.out.println("Converted ASCII VALUES ARE" + m);
    }
}
y53ybaqx

y53ybaqx1#

方法 charAt 返回指定索引处的char值。
方法 codePointAt 返回指定索引处的unicode代码点。

String str = "ABCDEFG";

String str2 = IntStream.range(0, str.length())
        .mapToObj(i -> {
            if (i % 2 == 0)
                return String.valueOf(str.charAt(i));
            else
                return String.valueOf(str.codePointAt(i));
        }).collect(Collectors.joining());

System.out.println(str2); // A66C68E70G

另请参见:将整数数组中的数字改为字母并返回字符串

disbfnqx

disbfnqx2#

您就快到了,只需构建结果字符串。 String s是不可变的,因此每次替换都会创建一个新字符串。我建议你 StringBuilder 但您也可以手动执行。
结果如下:

public static void main(String[] args) {
    String str = "ABCDEF";
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < str.length(); i++) {
        if (i % 2 != 0) {
            int m = str.charAt(i);
            sb.append(m); // add the ascii value to the string
        } else {
            sb.append(str.charAt(i)); // add the normal character
        }
    }
    System.out.println(sb.toString());
}

输出:

A66C68E70

相关问题