您的位置:程序门 -> java -> j2se / 基础类



replacefirst的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


replacefirst的问题[已结贴,结贴人:inter1]
发表于:2007-03-02 10:01:02 楼主
以下代码,
string   str1   =   "1234\\q\23 ";
string   str2   =   "1234\\q ";
str1   =   str1.replacefirst(   str2, " ");

执行的时候为什么会出异常呢!
java.util.regex.patternsyntaxexception:   illegal/unsupported   escape   squence   near   index   5
发表于:2007-03-02 10:26:201楼 得分:20
首先str1的\23没有意义,可能你需要的是\\23
str2的正则表达式不正确,\\q没有意义不被支持,而如\\d则可以,建议看正则表达式的知识
如果你想把 "1234\\q\23 "替换为 "\23 "
把str1改为 "1234\\q\\23 "
把str2改为 "1234\\\\. "就可以
发表于:2007-03-02 11:01:482楼 得分:0
是这样的,我从其他地方读入路径1   str1   :   c:\1234\q
路径2   str2:c:\1234\
想替换掉c:\1234\,得到q

该怎么处理呢

发表于:2007-03-02 13:30:513楼 得分:0
package   com.mmm.test;

public   class   filter   {
public   string   caster(){

string   str2   =   "1234\\pq ";
string   str[]   =   new   string[str2.length()];

string   path   =   " ";
int   len   =   str2.length()-1;
for(int   i=0;i <str2.length();i++){

if(str2.charat(len)== '\\ '){

for(int   j=len;j> =0;j--){
if(str[j]!=null){
path   +=   str[j];
}
}
return   path;
}
else{
str[i]   =   string.valueof(str2.charat(len));
len--;
}
}
return   path;
}
public   static   void   main(string   args[]){

system.out.println(new   filter().caster());
}

}

已测试通过


快速检索

最新资讯
热门点击