猿问

为什么 String concat(String) 方法的行为不同?

我请检查下面的代码。


我可以理解未分配 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"));

    }

}

输出为: String s1 输出:Hello String s2 输出:Hello World


12345678_0001
浏览 145回答 3
3回答

噜噜哒

因为在第二种情况下,你都串接结果的s2.concat(" World")到"String s2 output: ",你是不是忽视它。

繁星淼淼

Concat 返回一个包含连接字符串的新 String 实例。您只需通过不将其分配给变量来删除此连接版本。

小唯快跑啊

这是因为s1is Hellowhiles2.concat(" World")是另一个string具有连接字符串 as 的对象Hello World。concat#string方法总是返回string带有连接字符串的对象的新实例。
随时随地看视频慕课网APP

相关分类

Java
我要回答