当字符串有许多相同的其他字符串时,在Java中搜索并替换一行

时间:2015-05-27 06:04:58

标签: java android

好的,你可能已经知道我在想什么

好的,我会一步一步地把事情弄清楚

我在android中有一个文件,如: - /sdcard/file.xml

现在我想搜索在此文件中同样存在的字符串名称

就像我在xml中有这样的文字

这是不同设备上的file.xml

<any name="class">
<index="23" />
<item name="item1" />
<item name="item2" />
<item name="item3" />
</any>
<any name="school">
<index="12" />
<item name="item2" />
<item name="item3" />
<item name="item1" />
</any>

这是不同设备上的file.xml

<any name="class">
<index="26" />
<item name="item2" />
<item name="item1" />
<item name="item3" />
</any>
<any name="school">
<index="11" />
<item name="item1" />
<item name="item3" />
<item name="item2" />
</any>

我正在服用

<any name="class"> 

搜索单词,因为它在设备上不能有所不同

但正如你在这里看到的那样,下一个索引是不同的,项目也可以上下移动

但实际上我想替换<any name="class">

中存在的item2

我可以用任何方式替换它吗?

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式:

String updatedXML = inputXML.replaceAll("<any name=\"(\\d+)\">", 
      "<myreplacement id=\"$1\">");

此处(\\d+)表示&#34;此处可以有任意数量的数字,将它们分配给组#1&#34;并且$1表示&#34;在此处插入组#1内容&#34;。