Java没有提供字符串的替换功能,个人觉得除了用字符串的拆分与相加之外也没有什么更好的办法

解决方案 »

  1.   

    myString = myString.replaceAll(".idx",".index");
      

  2.   

    JDK 1.4 以后提供了 replaceAll 和 replaceFirst 两个方法,都可以替换字符串,都是用的正则表达式。你的问题可以像  zgysc(翠湖寒) 那样做。
      

  3.   

    如果只替换结尾的,可以
    public class Test {
        
        public static String replaceTail(String s, String src, String dest) {
            if (s.endsWith(src)) {
                return s.substring(0, s.length() - src.length()) + dest;
            } else {
                return s;
            }
        }    public static void main(String[] args) {
            String s = "a.idxbc.idx";
            System.out.println(replaceTail(s, ".idx", ".index"));
        }
        
    }
      

  4.   

    还是用拆分把,直接替换好像不成
    str=str.substring(0,str.lastIndexOf(".idx"))+".index";
      

  5.   

    从字符串末尾开始向前查找,第一个"."时判断它后面三位是不是idx,如果是就改成index
      

  6.   

    还是用拆分把,直接替换好像不成
    str=str.substring(0,str.lastIndexOf(".idx"))+".index";
    --------------------------------------------------------
    说得好!
      

  7.   

    先判断是否以“.idx”结束:endsWith(String suffix) 
    然后在str=str.substring(0,str.lastIndexOf(".idx"))+".index";
      

  8.   

    应该是有解决办法的吧?好象在什么地方看到过……
    java.lang.string里面……恩恩,同意楼上的!
      

  9.   

    int pos=myString.lastIndexOf(".idx");
    if(pos>0){
        myString = myString .substring(0,pos)+".index";
    }