如何在java中替换标记之间的子字符串

时间:2016-06-12 18:38:57

标签: java

如果标签之间不存在,我想替换字符串。 例: 如果c_str()中没有str1,则将str2替换为<>

输入字符串

<field1_str1>randomvalue_str1</field1_str1><field2_str1 > randomvalue_str1_random_value </field2_str1 >

输出字符串

<field1_str1>randomvalue_str2</field1_str1 ><field2_str1 > randomvalue_str2_random_value </ field2_str1 >

2 个答案:

答案 0 :(得分:0)

虽然你给出的例子并没有真正帮助,但我会给你第一行提出的问题的逻辑

Str str1="<Heylo>";
Str str2="Boo";
int stuff=hello.length();
if(str1.charAt(0).equals("<"); && str.charAt(stuff).equals(">")
System.out.println("It is in tags");
else
str1=str2;

答案 1 :(得分:0)

在查看您想要替换的位置的示例的基础上,您似乎想要替换两个XML标记之间出现的字符串。考虑更换&gt;之间发生的字符串似乎更容易。和&lt;而不是&lt;和&gt;。

String input = "<field1_str1>randomvalue_str1</field1_str1><field2_str1 > randomvalue_str1_random_value </field2_str1 >";

String str1 = "str1";
String str2 = "str2";

String replace = input.replaceAll(">([^<]*?)" + str1, ">$1" + str2);

此替换查找&gt;开始比赛,因为我们不想匹配标签内的东西。然后它将匹配任何不是&lt;因为这将结束我们的匹配并启动XML标记,它将继续匹配,直到找到str1。在成功匹配时,它将添加我们匹配的第一部分并将str1替换为str2。此代码返回您在输出字符串中查找的内容。