澄清java中的字符串连接

时间:2014-06-03 00:13:40

标签: java

我是Java初学者,所以请轻松评论。

    String test = "test";
    test.concat("test");
    System.out.println("concatenated string: " +test);
    System.out.println("concatenated test: " +test.concat(test));

为什么第一个print语句不打印testtest,而第二个打印语句呢?这可能是一个非常基本的问题,但我无法在网上找到答案。有人可以解释一下吗?

1 个答案:

答案 0 :(得分:3)

因为您没有将连接的字符串分配给另一个值(因为concat()返回结果字符串),所以它会丢失。

如果您想获得结果,则需要执行以下操作:

test = test.concat("test");

第二个println()有效,因为System.out.println()会立即返回,捕获并使用生成的连续字符串,但由于未分配({1}},因此会在println()之外丢失(因此如果您之后检查test,它仍然只包含"test"。)

以下是文档:http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#concat%28java.lang.String%29