簡単な質問。 Javaの文字列に適用される@と同等のものはありますか?
たとえば、@"c:\afolder\afile"
をC#で処理し、"c:\\afolder\\aFile"
。 Java同等のものはありますか?
うーん:stackoverflowは私に逃げています..笑2番目の例は次のようになります。
c :(二重バックスラッシュ)afolder(二重バックスラッシュ)aFile
いいえ 。文字列のエスケープ/外部化が唯一の選択肢です。
いいえ、Javaには 逐語的文字列リテラル はありません。
ただし、doesであるJavaライクな(およびJava-VMベースの)言語が必要な場合は、 Groovy には 文字列リテラルのさまざまな形式 があります。
ケントとジョンが言ったように、ありません。
私はあなたの特定のケースのために、たとえ一回以上のプログラムを想定して、一般的なケースでは悪い考えがあるとしても、指摘するために答えています。
JavaプログラムはWindows以外のプラットフォームで実行され、他のプラットフォームには異なるファイル区切り文字があります。したがって、エスケープされたバックスラッシュを処理する代わりに、特定の例を処理する正しい方法は、ファイル区切りプロパティを取得することです。
String sep = System.getProperty("file.separator");
String filename = ROOTDIR + sep + "folder" + sep + "afile";
プラットフォームだけでなく、「afile」を実際のファイルシステムルートまたはユーザーのホームディレクトリに対して相対的にするかどうかなど、何らかのポリシーに基づいてROOTDIRを個別に作成した場合。
しかし、間違いなく、ファイル区切りプロパティを使用すると、プログラムがより広く使用できるようになります。もっと仕事ですか?はい。ワンダ・サイクスが言うように、「しかしそれは価値がある」。
現在、Javaではサポートされていませんが、将来のリリースで使用可能になる可能性があります。 JEP 326:Raw String Literals at 2018/01/23が作成されました)
https://bugs.openjdk.Java.net/browse/JDK-8196004 で進捗状況を確認してください
おそらくいつかあなたはそれをすることができるでしょう:
`c:\afolder\afile`
PDATE: JDKはJDK 12:326からの削除を提案:Raw String Literals(プレビュー)ここに根拠: http://mail.openjdk.Java.net/pipermail/jdk-dev/2018-December/002402.html
そして詳細はこちら https://bugs.openjdk.Java.net/browse/JDK-8215682
ボトムライン:近い将来、Javaに逐語的な文字列はありません。表示されたとしても、むしろ表示されません。