这是我的字符串连接代码 StringSecret.java
public class StringSecret {
public static void main(String[] args) {
String s = new String("abc");
s.concat("def");
System.out.println(s);
}
}
我预计输出将是“abcdef”,但我只打印“abc”。有什么问题!。
答案 0 :(得分:2)
在java中,字符串是不可变的。它无法改变。 concat(...)
函数不会更改s
的值,但它只返回作为s
参数传递的参数值。
您必须将其存储在另一个变量中或直接打印或使用s = s.concat("def")
String c = s.concat("def");
System.out.println(c);
对于注释,您只能在java中使用c = s + "def";
或s += "def"
答案 1 :(得分:2)
String s = new String("abc");
s.concat("def");
String s = new String("abc");
s = s.concat("def");
注意: - 不要像这样String a = new String("abc");
初始化字符串
只需使用此String a = "abc";
答案 2 :(得分:1)
试试这个..
public class Test {
public static void main(String args[])
{
String s = "Strings are immutable";
s = s.concat(" all the time");
System.out.println(s);
}
}
答案 3 :(得分:1)
在java中,字符串对象是不可变的。永恒只是意味着不可修改或不可改变。 创建字符串对象后,无法更改其数据或状态,但会创建新的字符串对象。
所以要输出“abcdef”写“s.concat(”def“);”
示例强>
public class StringSecret {
public static void main(String[] args) {
String s = new String("abc");
s = s.concat("def");
System.out.println(s);
}
}
我希望它会对你有所帮助。
答案 4 :(得分:0)
字符串不要改变,因此连接的结果必须分配给其他东西,否则将丢失 例如:
strcpy(arr[counter][index],token);
答案 5 :(得分:0)
s = s.concat("def");
System.out.println(s);
您正在连接正确,但您没有在任何地方保存连接的结果。