与char值一起使用的加法运算符会产生不同的结果

时间:2015-10-21 01:06:49

标签: java charat

对于下面的代码块(整数值集),我得到一个奇怪的回报:

public String doubleChar(String str) {
String answer = "";
for (int i = 0; i < str.length(); i++) {
answer = answer + (str.charAt(i) + str.charAt(i));
}
return answer;
}

当我删除括在循环的第一个语句行中的str.chatAt方法调用的括号时,反对正确的输出值(字符串字符的重复):

answer = answer + str.charAt(i) + str.charAt(i);

感谢任何帮助,无法在线追踪。

谢谢

1 个答案:

答案 0 :(得分:0)

在Java char中是一个完整的类型。看来你想要String连接(即String加法)。你可以用

public String doubleChar(String str) {
    String answer = "";
    for (int i = 0; i < str.length(); i++) {
        answer = answer + String.valueOf(str.charAt(i))
                + String.valueOf(str.charAt(i));
    }
    return answer;
}

或(我的偏好)StringBuilder喜欢

public String doubleChar(String str) {
    StringBuilder sb = new StringBuilder();
    for (char ch : str.toCharArray()) {
        sb.append(ch).append(ch);
    }
    return sb.toString();
}