gpt4 book ai didi

java - 在整个字符串中插入一个字符

转载 作者:行者123 更新时间:2023-12-02 07:36:11 25 4
gpt4 key购买 nike

您好,我正在尝试在字符串中的所有字符之间插入破折号。我已经这样做了,但它不起作用:

public static String expand (String word)
{
int stringLength = word.length();

for (int x=0; x<stringLength; x++){
word = new StringBuffer(word).insert(x, "-").toString();
}
return word;
}

它会在单词之前产生破折号。我不明白为什么它不起作用。谢谢。

最佳答案

没错,所有破折号都插入在单词之前。这是如何发生的:当您插入第一个破折号时,索引一处的内容会移动一个字符,因此当您在下一个位置插入破折号时,您会在前一个破折号之后插入它:该单词不断移动离开,所以你的循环行为就像一只狗追逐自己的尾部!

有多种方法可以解决此问题:

  • 在偶数位置插入破折号,即 2*i
  • 从一个空的StringBuffer开始,循环遍历原始字符,然后添加一个字符,后跟一个破折号;当到达最后一个字符时,不要添加破折号。

请注意,第二种方法更有效,因为它与原始单词中的字符数呈线性关系。第一种方法(即基于插入的方法)效率较低,因为需要在每次插入时移动缓冲区的尾部,因此它的时间复杂度为 O(n2)。

关于java - 在整个字符串中插入一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22002447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com