2

Java 文字列のスペース char をバックスラッシュに置き換えるにはどうすればよいですか?

私はこれを試しました:

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 ではバックスラッシュをエスケープする必要があります。このリンクを参照してください:

\\テキストにバックスラッシュ文字を挿入します。

\\- を表し\ます。
\\\\- を表し\\ます。

コンソールに惑わされないでください。実際に表示されているのは 1 つの\.

于 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 に答える