有下面的一个字符串(包含很多行,符合xml文件的格式):
<value-001>1...end</value-001>
<value-002>222...ee</value-002>
<value-003>333nba...nd</value-003>
......
<value-NNN>nba...nb</value-NNN>
String或者StringBuffer类有什么方法能实现下面的功能:将“<value-002>”和“</value-002>”之间的内容“222...ee”替换成我想要的字符串(例如“nba-2006”)
也就是能否写一个方法,如:public string replace(String startStr, String endStr, String myStr) {
  //......
}里面有3个参数:
1。startStr,也就是开始的字符串,如上面例子的“<value-002>”
2。endStr,也就是结束的字符串,如上面例子的“</value-002>”
3。myStr,也就是我想要的字符串,如上面例子的“nba-2006”3Q

解决方案 »

  1.   

    将第三个">"和第四个"<"之间的字符串替换掉就可以了。
      

  2.   

    那就研究DOM和SAX两种解析xml的方法,很多资料的,自己搜吧
      

  3.   

    找到startStr的位置i和endStr的位置j,
    str = str.substring(0,i+1) + myStr + str.substring(j.str.length)
      

  4.   

    AngelInDark(人生就素那浮云) :感谢你的提示,尽管你遗忘了startStr,并且把“(0,i)”写成了“(0,i+1)”。下面是我在你的帮助下完成的方法:========================  /**
      * 假设字符串str中包含唯一的一个startStr和endStr,并且startStr在endStr前面,
      * 此方法把startStr和endStr之间的内容替换为myStr
      * 
      * 如把:
      * 11-22-33<action-023>12345678</action-023>
      * 替换为:
      * 11-22-33<action-023>abcd==efgh</action-023>
      */
      public static String replace(String str, String startStr, String endStr, String myStr) {
        //找到startStr的位置i和endStr的位置j
        int i = str.lastIndexOf(startStr);
        int j = str.lastIndexOf(endStr);
        
        str = str.substring(0, i) + startStr + myStr + str.substring(j, str.length());
        
        return str;
      }
      
      

  5.   

    有startStr, endStr,找出它们的位置,把属于它们位置的这一段字串replace掉就好了