Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在声明的字符串后追加字符串?_Java - Fatal编程技术网

Java 如何在声明的字符串后追加字符串?

Java 如何在声明的字符串后追加字符串?,java,Java,一个初学者正在问这个问题,所以听起来可能很基本!。。。。我仍在学习走路……有一天我将跑步:) 我想修改下面的代码,这样我就可以在输入的名字后面插入单词“Great”。名称长度不同,因此我知道我必须更改行z 你能告诉我正确的方法吗 问候, Scanner id = new Scanner(System.in); String name = " "; String surname = " "; System.out.println("Please enter yo

一个初学者正在问这个问题,所以听起来可能很基本!。。。。我仍在学习走路……有一天我将跑步:)

我想修改下面的代码,这样我就可以在输入的名字后面插入单词“Great”。名称长度不同,因此我知道我必须更改行
z

你能告诉我正确的方法吗

问候,

    Scanner id = new Scanner(System.in);

    String name = " ";
    String surname = " ";

    System.out.println("Please enter your name: ");
    name = id.nextLine();

    System.out.println();

    System.out.println("Please enter your surname: ");
    surname = id.nextLine();

    StringBuffer z = new StringBuffer();
    z.append(name + " " + surname + " Is The King of Kings");
    z.insert(5, " The Great ");

    System.out.println(z);
    System.out.println();

为什么不采用更简单的方法:

StringBuffer z = new StringBuffer();
z.append(name + " The Great " + surname + " Is The King of Kings");
不幸的是,这没有利用
StringBuffer
-要使用
StringBuffer
它的用途,请尝试

z.append(name).append(" The Great ").append(surname).append(" Is The King of Kings");

我们这样做的原因是,每次我们进行串联时,使用
+
操作符串联字符串会创建一个新的字符串对象(并丢弃前面的两个操作数)。这可以为GC创建大量工作。

为什么不采用更简单的方法:

StringBuffer z = new StringBuffer();
z.append(name + " The Great " + surname + " Is The King of Kings");
不幸的是,这没有利用
StringBuffer
-要使用
StringBuffer
它的用途,请尝试

z.append(name).append(" The Great ").append(surname).append(" Is The King of Kings");

我们这样做的原因是,每次我们进行串联时,使用
+
操作符串联字符串会创建一个新的字符串对象(并丢弃前面的两个操作数)。这会为GC创建大量工作。

您需要计算
名称的长度,类似于

int len = name.length() + surname.length() + 1;
应该为您提供索引点,在此之后可以插入附加字符串

例如,就个人而言,如果可以的话,最好在一个步骤中附加元素

z.append(name).
    append(" ").
    append(surname).
    append(" The Great ").
    apoend("is the King of Kings");

您需要计算
name
的长度,类似于

int len = name.length() + surname.length() + 1;
应该为您提供索引点,在此之后可以插入附加字符串

例如,就个人而言,如果可以的话,最好在一个步骤中附加元素

z.append(name).
    append(" ").
    append(surname).
    append(" The Great ").
    apoend("is the King of Kings");

我会使用
StringBuilder
和一些链接调用:


我会使用
StringBuilder
和一些链接调用:


为什么不做一个简单的字符串对象,而不是做一个StringBuffer呢

String output = name + " The Great " + surname + " Is The King of Kings";
System.out.println(output);

为什么不做一个简单的字符串对象,而不是做一个StringBuffer呢

String output = name + " The Great " + surname + " Is The King of Kings";
System.out.println(output);

像z.append(name.append(“TheGreat”)这样做不是更好吗。。。或者类似的?做一些像z.append(name.append(“伟大”)这样的事情不是更好吗。。。或者是这样的?@user3693592很高兴它起了作用;)@用户3693592很高兴它有帮助;)