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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – 使用Kotlin的Hibernate:@ManyToOne(fet
- java – 在Google Drive API v3中等效的File.set
- java – SimpleClientHttpRequestFactory vs Htt
- 利用注解配置Spring容器的方法
- java – 使用application.properties在Spring Bo
- Address localhost:1099 is already in use
- 如何解决此Java泛型通配符错误?
- java – 如何初始化一个对象数组?
- java – 在Oracle中的to_char()中显示时区描述
- java – 当我得到Exception时如何设置消息