2

java - 如何用反斜杠替换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.

感谢帮助

4

4 回答 4

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

于 2013-07-18T13:30:32.873 回答
2

反斜杠需要在 Java 中转义。请参阅此链接

\\ 在文本中插入反斜杠字符。

\\- 代表\
\\\\- 代表\\

不要让控制台愚弄您,您所看到的实际上是一个\.

于 2013-07-18T13:32:36.007 回答
0

您也可以像这样删除空间

    String mysz = " 1 2 3 4 5 6 7 8 9 10";
String mysz2 = mysz.replaceAll("\\s","");
System.out.println(""+mysz2);
于 2013-07-18T13:39:29.263 回答
-3

在 Java 中,字符串“\”表示单个反斜杠。如果你想要双反斜杠,你必须写“\\”。

于 2013-07-18T13:25:15.303 回答