Java遍历动态字符串

时间:2018-11-19 03:56:02

标签: java string loops

考虑一个字符串:

<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>

问题是,当我遍历该字符串并附加在其中时,上述字符串的长度发生了变化,并且我继续将字符串附加在同一位置。如何克服呢?预先感谢。

2 个答案:

答案 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 <”。如果必须自己执行此操作,则每次插入一些文本时,只需要将插入的文本的长度添加到循环计数器中即可。