我现在有一个字符串,其实是一段xml报文:
String s = "<Result><State>1</State><Type>1</Type></Result>";我想把这个字符串里的 "<Type>1</Type>" 改为"<Type>2</Type>"请大家忙个忙啊~~~

解决方案 »

  1.   

    替换 String replace(char oldChar, char newChar) s = s.replace('1','2');
      

  2.   

    貌似如果文件很大就不靠谱了。。lz自行决定哈import java.util.regex.Matcher;
    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);
    }}
      

  3.   

    如果这个修改是固化的,那么可以:
    s = s.replaceAll("<Type>1</Type>", "<Type>2</Type>");如果是要按条件情况进行处理,那么就要考虑2楼的方案,或者直接先将其用转为jdom对象等再进行处理。
      

  4.   

    使用dom4j:找到type这个元素,再修改其中的内容,OK!
      

  5.   

    谢谢楼上各位
    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>");
      

  6.   

    String s = "<Result><State>1</State><Type>1</Type></Result>";
            System.out.println(s.replaceAll("<Type>(.*)</Type>", "<Type>2</Type>"));
      

  7.   

    看你希望使用哪种方式,如果把这段XML仅仅做文本的处理,那使用字符串函数就好了,如果希望将其对象化再处理,那可以考虑dom或jaxb之类。反正都可以吧。