大家看图片吧:需求就是把trString中的单反斜杠切换成双反斜杠或者斜杠;
但是始终转换不了,有办法吗?谢谢
根据你的评论,你应该是转换文件路径。先看下面的代码:
String str1 = "z:\1\0\20170807\110\1621262.V3";
System.out.println(str1); // output: z:...(特除字符显示不了)
String str2 = "z:\\1\\0\\20170807\\110\\1621262.V3";
System.out.println(str2); // ouptput: z:\1\0\20170807\110\1621262.V3
String str3 = "z:\\\\1\\\\0\\\\20170807\\\\110\\\\1621262.V3";
System.out.println(str3); // output: z:\\1\\0\\20170807\\110\\1621262.V3
所以你从接口得到的应该是字符应该是z:\1\0\20170807\110\1621262.V3
:
String str2 = "z:\\1\\0\\20170807\\110\\1621262.V3";
。"z:\\1\\0\\20170807\\110\\1621262.V3";
,在IDE正确地表达它应该是:"z:\\\\1\\\\0\\\\20170807\\\\110\\\\1621262.V3";
。回到你的问题:首先,如果你从接口或别的地方得到的字符串是z:\1\0\20170807\110\1621262.V3
,这个路径应该是Windows可以识别,例如:"c:\windows"
就是有效的文件路径:
System.out.println(new File("c:\\windows").getAbsolutePath());
其次,如果是要把文件路径转换成双\\
,
String str4 = str2.replace("\\", "\\\\");
System.out.println(str4); // output: z:\\1\\0\\20170807\\110\\1621262.V3
最后,另外一种转为文件路径的方式是把:\
代替成 /
String str5 = str2.replace("\\", "/");
System.out.println(str5); // output: z:/1/0/20170807/110/1621262.V3
如果是路径,应该是有两个反斜杠“\”,或者单个“/”就行,所以感觉这个trString有点问题。
如果用“”单个反斜杠,会被当作转义字符处理。
public static void main(String[] args){
String str = "Z:/1/0/20170807/110/fds.V3";
System.out.println(str.replace("/","\\\\"));
}
8 回答6.6k 阅读
4 回答714 阅读✓ 已解决
2 回答3.4k 阅读
3 回答1.9k 阅读✓ 已解决
1 回答2.2k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答974 阅读✓ 已解决
这是JAVA基础问题
你的输入是错误的,反斜杠 是转义字符,比如你想定义一个字符串
a\b\c
, 那么需要写成:你可以写个简单的例子输出测试一下