我正在尝试使用StringBuffer#insert
插入char
放在一个单词中的不同位置,但要么我没有正确使用它,要么我误解了这个函数实际上的作用。
首先,我希望它添加字母 't'
进入 "Java"
内的不同位置。我已经给出了我尝试使用的部分代码。
例如,第一次运行时应打印“tJava”,第二次运行时应打印“Jtava”,依此类推,直到打印“Javat”后循环结束。然而,我得到的是:
tJava
ttJava
tttJava
ttttJava
如果我使用错误或者有其他方法可以做到这一点,我们将不胜感激。
String addLetter = "t";
String Word = "Java";
StringBuffer tempWord = new StringBuffer(Word);
for(int i = 0; i<Word.length(); i++) {
tempWord = tempWord.insert(i, addLetter);
System.out.println(tempWord);
}
最佳答案
当您在 StringBuffer
上调用 insert
时,插入的值将被保留。例如:
StringBuffer test = new StringBuffer("test");
test.insert(1, "t");
test.insert(3, "t");
System.out.println(test);
将打印ttetst
。
因此,如果您确实想保留更新后的字符串,则不需要重新分配tempWord = tempWord.insert(i, "t");
。
现在,如果您想在正确位置显示仅添加 1 个字符的原始字符串,则必须在每次迭代时将 word
重新分配给 tempWord
。
String addLetter = "t";
String Word = "Java";
StringBuffer tempWord = new StringBuffer(Word);
for(int i = 0; i<Word.length(); i++) {
tempWord = new StringBuffer(Word);
System.out.println(tempWord.insert(i, addLetter));
}
关于java - 如何正确使用StringBuffer#insert?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29735398/