我请检查下面的代码。
我可以理解未分配String s1,因此即使使用了concat(string)方法,它也会提供原始输出。
但是,在String s2的情况下,未分配任何变量,但可以进行串联。
有人可以解释吗?
package com.stringconcat.main;
public class StringConcat {
public static void main(String[] args) {
String s1 = "Hello";
s1.concat(" World");
System.out.println("String s1 output: " + s1);
String s2 = "Hello" /*s1*/;
System.out.println("String s2 output: " + s2.concat(" World"));
}
}
输出为: 字符串s1输出:Hello 字符串s2输出:Hello World
答案 0 :(得分:2)
因为在第二种情况下,您将s2.concat(" World")
的结果连接到"String s2 output: "
,所以您不会忽略它。
答案 1 :(得分:0)
Concat返回包含连接字符串的String的新实例。您只需通过不将其分配给变量来删除此串联的版本。
答案 2 :(得分:0)
这是因为s1
是Hello
,而s2.concat(" World")
是另一个
string
对象,其连接字符串为Hello World
。 concat#string
方法始终返回带有串联字符串的string
对象的新实例。