java遇到一个很棘手的问题:字符串"\"转换
现在想将"psypc\2011\12\142"通过javaString的replaceall转换成"psypc/2011/12/142",但转换结果java将\认为是转义...
现在想将"psypc\2011\12\142" 通过java String 的replaceall 转换成 "psypc/2011/12/142",但转换结果java将\认为是转义符
public static void main(String[] args) {
String str="psypc\2011\12\142";
System.out.println(str.replaceAll("\\\\", "\\\\\\\\"));
}
结果:psypc?1
b
我想要的结果是:psypc/2011/12/142
str的值是从数据库里面直接取的,不能改变成\\样子的 展开
public static void main(String[] args) {
String str="psypc\2011\12\142";
System.out.println(str.replaceAll("\\\\", "\\\\\\\\"));
}
结果:psypc?1
b
我想要的结果是:psypc/2011/12/142
str的值是从数据库里面直接取的,不能改变成\\样子的 展开
14个回答
展开全部
String str="psypc\\2011\\12\\142";
System.out.println(str.replaceAll("\\\\", "/"));
这样就行了,在java里面“\”是特殊字符,所以要写成“\\”。如果你将字符串定义在java类里面,你就必须写成“psypc\\2011\\12\\142”这种形式。
如果你是从键盘输入的就可以写成"psypc\2011\12\142"。比如我将它作为命令行里的参数传进去的:
String str=args[0];
System.out.println(str.replaceAll("\\\\", "/"));
在这里我输入的参数为:"psypc\2011\12\142"。
System.out.println(str.replaceAll("\\\\", "/"));
这样就行了,在java里面“\”是特殊字符,所以要写成“\\”。如果你将字符串定义在java类里面,你就必须写成“psypc\\2011\\12\\142”这种形式。
如果你是从键盘输入的就可以写成"psypc\2011\12\142"。比如我将它作为命令行里的参数传进去的:
String str=args[0];
System.out.println(str.replaceAll("\\\\", "/"));
在这里我输入的参数为:"psypc\2011\12\142"。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public static void main(String[] args) {
String str="psypc\\2011\\12\\142";
System.out.println(str.replace("\\", "/"));
}
是你开始定义的str有问题。
psypc\2011\12\142里的\2 \1都被当做转义字符处理了
所以要这样定义
psypc\\2011\\12\\142
replaceAll的第一个参数是正则表达式,正则式"\"的写法应该是"\\\\"。没有必要用这个,用简单的字符替换replace就可以了,两个参数都是字符串
String str="psypc\\2011\\12\\142";
System.out.println(str.replace("\\", "/"));
}
是你开始定义的str有问题。
psypc\2011\12\142里的\2 \1都被当做转义字符处理了
所以要这样定义
psypc\\2011\\12\\142
replaceAll的第一个参数是正则表达式,正则式"\"的写法应该是"\\\\"。没有必要用这个,用简单的字符替换replace就可以了,两个参数都是字符串
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-01-07
展开全部
“转义字符”只有对编译器起作用,也就是说你的Java源代码中出现\的时候,会被认为是个转义字符。而你的数据在运行时刻是从数据库里面取的,不需要考虑转义字符的问题,但你的替换代码中,需要转义,即
str.replaceAll("\\", "/");
str.replaceAll("\\", "/");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public static void main(String[] args) {
String str="psypc\\2011\\12\\142";
System.out.println(str.replaceAll("\\\\", "\\/"));
}
结果:
psypc/2011/12/142
"\"在java中有转义字符的意思,这样改了之后就可以,但是不知道是不是你想要的,谢谢!!!
String str="psypc\\2011\\12\\142";
System.out.println(str.replaceAll("\\\\", "\\/"));
}
结果:
psypc/2011/12/142
"\"在java中有转义字符的意思,这样改了之后就可以,但是不知道是不是你想要的,谢谢!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你的字符在读取的str就变成了psypc?1
b
解决的方法暂时没有。。最好你在输入的时候就将\替换为\\
b
解决的方法暂时没有。。最好你在输入的时候就将\替换为\\
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询