一个初学者正在问这个问题所以听起来可能非常基本!....我还在学习如何走路...... 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();
答案 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对象呢?
而不是做一个StringBufferString 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);