如何用反斜杠替换java字符串中的空格?
我试过了:
String text = " 1 2 3 4 5 6 7 8 9 10";
text = text.replace(" ","\\");
System.out.println(text2);
但是看看eclipse调试变量的结果:
text 1 2 3 4 5 6 7 8 9 10
text2 \\1\\2\\3\\4\\5\\6\\7\\8\\9\\10
但在我的日志中结果不同:
07-18 14:56:31.049: I/System.out(9177): \1\2\3\4\5\6\7\8\9\10
我想将它与smb命令一起使用以允许目录文件名中的空格。当我在我的代码中手动设置它时,此命令有效。结果应该是这样的:
source : smb://192.168.0.254/Disque dur/
text = text.replace(" ","\040");
result : smb://192.168.0.254/Disque\040dur/
但是当我使用replace()方法时,会出现双反斜杠......
result : smb://192.168.0.254/Disque\\040dur/
07-18 15:15:10.439: E/Home(9538): jcifs.smb.SmbException: The network name cannot be found.
感谢您的帮助
答案 0 :(得分:4)
这样做:
String text = " 1 2 3 4 5 6 7 8 9 10";
text = text.replace(" ","\\\\");
System.out.println(text2);
以反斜杠(\)开头的字符是转义序列,对编译器具有特殊含义。 '的 \\ 强>'此时在文本中插入反斜杠字符。
您可以在此处阅读更多内容:http://docs.oracle.com/javase/tutorial/java/data/characters.html
答案 1 :(得分:2)
答案 2 :(得分:0)
你也可以删除这样的空间
String mysz = " 1 2 3 4 5 6 7 8 9 10";
String mysz2 = mysz.replaceAll("\\s","");
System.out.println(""+mysz2);
答案 3 :(得分:-3)
在Java中,字符串“\”表示单个反斜杠。如果你想要双反斜杠,你必须写“\\”。