java – 字符串的组合形成一个字符串给出不同的结果
|
为什么当我使用下面的操作来总结字符时,它会返回数字而不是字符?不应该给出相同的结果吗? ret += ... ; // returns numbers ret = ret + ...; // returns chars 下面的代码重复了这些字符: doubleChar(“The”)→“TThhee” public String doubleChar(String str) {
String ret = "";
for(int i = 0; i < str.length(); i++) {
ret = ret + str.charAt(i) + str.charAt(i); // it concatenates the letters correctly
//ret += str.charAt(i) + str.charAt(i); // it concatenates numbers
}
return ret;
}
解决方法以下表达式的结果ret + str.charAt(i) + str.charAt(i); 是String连接的结果. The Java language specification states
的结果 str.charAt(i) + str.charAt(i); 是加法运算符应用于两种数值类型的结果. The Java language specification states
在这种情况下 str.charAt(i) + str.charAt(i); 成为一个保持两个char值的和的int.然后连接到ret. 您可能还想知道关于复合赋值表达式=的信息
换一种说法 ret += str.charAt(i) + str.charAt(i); 相当于 ret = (String) ((ret) + (str.charAt(i) + str.charAt(i)));
| ^ integer addition
|
^ string concatenation (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
