类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
有String myString;
要求:假如myString以".idx"结尾,则将它改为以".index"结尾。
大家集思广益一下如何: )
网友回答:
Java没有提供字符串的替换功能,个人觉得除了用字符串的拆分与相加之外也没有什么更好的办法
能不能够用字符串数组呢,试试看,我没有试过啊!
myString.replaceAll(".idx",".index");
myString = myString.replaceAll(".idx",".index");
错了.上面会替换全部的.不只是最后的
JDK 1.4 以后提供了 replaceAll 和 replaceFirst 两个方法,都可以替换字符串,都是用的正则表达式。你的问题可以像 zgysc(翠湖寒) 那样做。
如果只替换结尾的,可以
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"));
}
}
还是用拆分把,直接替换好像不成
str=str.substring(0,str.lastIndexOf(".idx"))+".index";
同意楼上的方法
从字符串末尾开始向前查找,第一个"."时判断它后面三位是不是idx,如果是就改成index
还是用拆分把,直接替换好像不成
str=str.substring(0,str.lastIndexOf(".idx"))+".index";
--------------------------------------------------------
说得好!
先判断是否以“.idx”结束:endsWith(String suffix)
然后在str=str.substring(0,str.lastIndexOf(".idx"))+".index";
应该是有解决办法的吧?好象在什么地方看到过……
java.lang.string里面……
恩恩,同意楼上的!
int pos=myString.lastIndexOf(".idx");
if(pos>0){
myString = myString .substring(0,pos)+".index";
}
myString.replaceAll(".idx",".index");