这是我尝试过的;
public String frontBack(String str) {
char begin = str.charAt(0);
char end = str.charAt(str.length()-1);
return begin+str.substring(1,str.length()-1)+end;
}
我认为它会失败,因为 begin 和 end 是字符,但事实并非如此。这怎么可能?谁能给我解释一下?谢谢!
这是我尝试过的;
public String frontBack(String str) {
char begin = str.charAt(0);
char end = str.charAt(str.length()-1);
return begin+str.substring(1,str.length()-1)+end;
}
我认为它会失败,因为 begin 和 end 是字符,但事实并非如此。这怎么可能?谁能给我解释一下?谢谢!
Java 的“+”运算符也可用作连接运算符。它可以连接原语和对象,并返回一个字符串,这是它的结果。
以下解释假定您熟悉 Java 的包装类。如果您不熟悉它们,请阅读。
Java 的“+”运算符将语句中使用的所有原始数据类型转换为其等效的 Wrapper 类,并在这些实例上调用 toString() 方法并使用该结果,该结果是表达式中的字符串。
例如:在 Java 中,类似这样的语句System.out.println( 3 + " Four " + 'C' );
最终会创建一个包含内容的字符串"3 Four C"
。
在上面的语句中,3 是一个原始的 int 变量。“四”是一个字符串对象,“C”是一个原始字符变量。
在 '+' concat 操作期间,3 被转换为其对应的 Wrapper 类 -> Integer。然后对其调用 toString() 方法。输出是字符串 3,即“3” “四”已经是一个字符串,不需要进一步处理。'C' 被转换为字符包装类,并且 toString() 方法导致返回字符串“C”。
所以最后,将这三个相加,得到“3 Four C”。
总结一下: