web-dev-qa-db-ja.com

Java文字列リテラルでバックスラッシュをエスケープする

私はJavaをしばらく使用していますが、この問題が発生します:次のようなウィンドウでハードコードされたパスを使用します

"D:\Java-code\JavaProjects\workspace\eypros\src"

問題は、バックスラッシュ文字を文字列で使用するためにエスケープする必要があることです。したがって、各バックスラッシュを手動でエスケープします。

"D:\\Java-code\\JavaProjects\\workspace\\eypros\\src"

エスケープされていないパスを自動的に取り、エスケープされたJava文字列を返す方法があります。

Java文字列以外の別のコンテナがうまくいくかもしれないと思っています(しかし私は知りません)。

助言がありますか?

8
Eypros
_public static String escapePath(String path)
{
    return path.replace("\\", "\\\\");
}
_

これらの文字列でもエスケープする必要があるため、_\_は2倍になります。

とにかく、_\_の代わりにSystem.getProperty("file.separator");を使うべきだと思います。

また、_Java.io.File_には、ファイルシステムパスに役立ついくつかのメソッドがあります。

16
Andrei