考虑一个字符串:
<p>This is 1st paragraph</p>
<p>This is 2nd paragraph</p>
我想在找到<
时在上面的字符串后附加一个字符串,
像这样:
HELLO<p>This is 1st paragraphHELLO</p>
HELLO<p>This is 2nd paragraphHELLO</p>
问题是,当我遍历该字符串并附加在其中时,上述字符串的长度发生了变化,并且我继续将字符串附加在同一位置。如何克服呢?预先感谢。
答案 0 :(得分:1)
您可以执行此操作的一种方法是使用字符串替换来代替迭代:
String x = "<p>This is 1st paragraph</p>"
String y = x.replace("<", "HELLO<")
System.out.println(y)
// HELLO<p>This is 1st paragraphHELLO</p>
迭代的问题是,您在字符串中的位置基本上与字符串本身的结构相关。因此,当您通过添加或删除字符来修改字符串的结构时,您在字符串中的位置不会改变-因此最终会出现在您不希望出现的位置。我不知道您到底要使用哪种方法进行迭代-撰写本文时,您尚未提供该代码的片段-但如果您真的想使用迭代而不是使用replace()
方法,您需要注意,每次更改字符串时,也要根据更改方式来移动迭代器。
答案 1 :(得分:0)
如果这不是家庭作业,则可以使用字符串replace将所有出现的“ <”替换为“ HELLO <”。如果必须自己执行此操作,则每次插入一些文本时,只需要将插入的文本的长度添加到循环计数器中即可。