【问题标题】:What happen when we concatenate two strings当我们连接两个字符串时会发生什么
【发布时间】:2018-09-05 07:21:20
【问题描述】:

我期待输出为真,但我得到的输出为假 谁能解释一下?

String st = "mah";
        String st1 = "mah";
        String test = st + st1;
        String test1 = st + st1;
        System.out.println(test == test1);

【问题讨论】:

  • edit您的问题为您使用的语言添加标签。这是最重要的标签。
  • String comparison in Java的可能重复
  • 您没有指定语言。假设您正在使用 java: 1. st + st1 返回一个包含“mahmah”的新对象 2. 由于 st + st1 被调用两次,它返回两个不同的对象(也许实习有时会使该语句无效?) 3. 你正在使用 == 这意味着(对于对象)除非两个变量都“指向”同一个对象,否则您将得到错误。 (例如,如果String test1 = test,则结果为真)但是正如stackoverflow.com/questions/5286310/string-comparison-in-java中提到的,您应该使用equals方法来比较字符串

标签: string concatenation


【解决方案1】:

如果你加入的字符串不是编译时常量,你就不能避免创建一个新的字符串,因为 String 的不变性。 试试下面 - 你会得到真实的。

    final String st = "mah";
            final String st1 = "mah";
            String test = st + st1;
            String test1 = st + st1;
            System.out.println(test == test1);

【讨论】:

    猜你喜欢
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 2014-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多