我现在有一个字符串,其实是一段xml报文:
String s = "<Result><State>1</State><Type>1</Type></Result>";我想把这个字符串里的 "<Type>1</Type>" 改为"<Type>2</Type>"请大家忙个忙啊~~~
String s = "<Result><State>1</State><Type>1</Type></Result>";我想把这个字符串里的 "<Type>1</Type>" 改为"<Type>2</Type>"请大家忙个忙啊~~~
import java.util.regex.Pattern;public class NM { /**
* @param args
*/
public static void main(String[] args) {
String text = "<Result><State>1</State><Type>1</Type></Result>";
Pattern p = Pattern.compile("<Type>(\\d+)</Type>");
Matcher m = p.matcher(text);
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, "<Type>" + 2 + "</Type>");
}
m.appendTail(sb); System.out.println(sb);
}}
s = s.replaceAll("<Type>1</Type>", "<Type>2</Type>");如果是要按条件情况进行处理,那么就要考虑2楼的方案,或者直接先将其用转为jdom对象等再进行处理。
String s = "<Result><Team><State>1</State><Type>1</Type></Team><Team><State>2</State><Type>1</Type></Team>..<Team></Team></Result>";s字符串里会有多个"<Type>1</Type>" 并且是固定不变的所以我觉得应该可以直接用 s.replaceAll("<Type>1</Type>","<Type>2</Type>");
System.out.println(s.replaceAll("<Type>(.*)</Type>", "<Type>2</Type>"));