【问题标题】:How to concatenate string in java如何在java中连接字符串
【发布时间】:2016-06-26 05:34:56
【问题描述】:

这是我的字符串连接代码。
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”。有什么问题!。

【问题讨论】:

标签: java string printing


【解决方案1】:

在java中字符串是不可变的。它不能改变。 concat(...) 函数不会更改 s 的值,但它只是返回作为参数传递给 s 的连接值。
您必须将其存储在另一个变量中或直接打印或使用s = s.concat("def")

String c = s.concat("def");
System.out.println(c);

对于注释,您可以在 java 中使用 c = s + "def";s += "def"

【讨论】:

  • 为什么要把它存入另一个变量?你能澄清一下吗!
  • @faizalvasaya String 是不可变的,这就是原因。
  • 我刚刚开始研究 Java 中的“字符串”,因为同样我不知道“不可变”这个词。能否请您详细说明一下。
  • 不可变意味着不能改变。
【解决方案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";

【讨论】:

  • 感谢您为澄清我的疑问所做的努力。这对我帮助很大。谢谢
【解决方案3】:

在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】:

    试试这个..

    public class Test {
    
       public static void main(String args[])
       {
          String s = "Strings are immutable";
          s = s.concat(" all the time");
          System.out.println(s);
       }
    }
    

    【讨论】:

      【解决方案5】:

      字符串不会发生变异,因此连接的结果必须分配给某些东西,否则会丢失 示例:

      String s = new String("abc");
      s = s.concat("def");
      

      【讨论】:

        【解决方案6】:
        s = s.concat("def");
         System.out.println(s);
        

        您正确连接,但您没有将连接结果保存在任何地方。

        【讨论】:

          猜你喜欢
          • 2011-04-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-01-23
          • 2011-04-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多