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

时间:2014-05-31 06:45:39

标签: java

一个初学者正在问这个问题所以听起来可能非常基本!....我还在学习如何走路...... 1天我会跑步:))

我想修改以下代码,以便我可以插入单词" Great"输入名称后。名称长度因人而异,因此我知道我必须更改行z.insert(5, " The Great ");

请告诉您正确的方法吗?

此致

    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();

5 个答案:

答案 0 :(得分:2)

您需要计算name的长度,例如......

int len = name.length() + surname.length() + 1;

应该为您提供索引点,之后您可以插入附加字符串

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

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

答案 1 :(得分:1)

 z.insert(name.length(), " The Great ");

答案 2 :(得分:1)

为什么不做一个简单的String对象呢?

而不是做一个StringBuffer
String output = name + " The Great " + surname + " Is The King of Kings";
System.out.println(output);

答案 3 :(得分:0)

为什么不只是简单的方法:

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");

我们这样做的原因是因为使用+运算符连接字符串每次我们进行连接时都会创建一个新的String对象(并抛弃前两个操作数)。这可以为GC创造大量的工作。

答案 4 :(得分:0)

我会使用StringBuilder和一些链式调用

StringBuilder sb = new StringBuilder();
sb.append(name).append(" The Great ").append(surname).append(" Is the King of Kings");

System.out.println(sb);