字符串的连接形成一个字符串给出不同的结果

字符串的连接形成一个字符串给出不同的结果

本文介绍了字符串的连接形成一个字符串给出不同的结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 为什么,当我使用下面的操作来计算字符时,它返回数字而不是字符?应该不会给出相同的结果吗?Why, when I use the operation below to sum chars, does it return numbers instead of chars? Shouldn't it give the same result?ret += ... ; // returns numbersret = ret + ...; // returns chars下面的代码复制了这些字符:The code below duplicates the chars: doubleChar(The)→TThheedoubleChar("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);是字符串连接的结果。 Java语言规范说明is the result of String concatenation. The Java language specification states 字符串连接的结果是对一个String对象的引用,它是两个操作数字符串的连接。在新创建的字符串中,左侧操作数的字符位于右侧操作数的字符之前。 The result of string concatenation is a reference to a String object that is the concatenation of the two operand strings. The characters of the left-hand operand precede the characters of the right-hand operand in the newly created string.str.charAt(i) + str.charAt(i);是应用于两个数字类型的加法运算符的结果。 Java语言规范说明is the result of the additive operator applied to two numeric types. The Java language specification states 二进制+运算符在应用于数值类型的两个操作数时执行相加,产生操作数的和。 [...] 数值操作数上的加法表达式的类型是其操作数的促销 类型。在这种情况下,str.charAt(i) + str.charAt(i);成为一个 int 两个 char 值。然后它连接到 ret 。becomes an int holding the sum of the two char values. That is then concatenated to ret.要了解复合赋值表达式的复合赋值表达式 + =You might also want to know this about the compound assignment expression += E1 op = E2 等效于到 E1 =(T)((E1)op(E2)),其中 T 是 E1 的类型,除了 E1 只计算一次。 A compound assignment expression of the form E1 op= E2 is equivalent to E1 = (T) ((E1) op (E2)), where T is the type of E1, except that E1 is evaluated only once.换句话说,ret += str.charAt(i) + str.charAt(i);相当于ret = (String) ((ret) + (str.charAt(i) + str.charAt(i))); | ^ integer addition | ^ string concatenation 这篇关于字符串的连接形成一个字符串给出不同的结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
08-15 04:29