2016-04-29 22 views
2

文字列変数をファイルの1つのパスに初期化しようとしました。エスケープシーケンスが無効であることを報告します。どんな解決策ですか?文字列変数のエスケープシーケンスからエスケープする方法

答えに@Hank Dと@ Seigeのコメントを変換
String s="F:\abc\xyz.txt"; 
+0

特定の言語はありますか? –

+3

"\"文字は、 "エスケープ"または次の文字の意味を変更するための特別な意味を持ちます( "\ t"はタブ文字などを意味します)。エスケープシーケンスを作成する作業があるので、実際に文字列に\文字が必要な場合は、エスケープシーケンス "\\"を使用する必要があります。これは\文字に変換されます。 –

+0

ありがとうございました..魅力のようなその仕事:) – Kyrie

答えて

0

JavaやC#で(それはあなたがここで使用しているどの言語を伝えるのは難しいのですが、それはおそらく、これらの二つのうちの一つです)、バックスラッシュ文字\を使用してエスケープシーケンスを使用すると、通常はキーボードで入力できない特殊文字を文字列に含めることができます。たとえば、あなたが\nを書くことで文字列に改行を入れることができます。

String multiline = "This String\nSpans Multiple\nLines!"; 

あなたは\U配列とUnicode文字含めることができます。

String heart = "I \U2764 Escape Sequences!"; 

をそして、あなたは\"配列とネストされた引用符を含めることができます。あなたのケースでは

String quotation = "Quoth the raven, \"Nevermore.\""; 

、あなたはとして\文字を使用しようとしていますJava/C#では、無効なエスケープシーケンスを作成しようとしていることを解釈しています。これは、文字列

F:\abc\xyz.txt 

は、この問題を解決するには

F:(\a)bc(\x)yz.txt 

として解釈取得されている、あなたは、バックスラッシュの略\\エスケープシーケンスその事実を使用して、このような文字列を記述することができます。

String s = "F:\\abc\\xyz.txt"; 

面白い事実:バックスラッシュがJava/C#でパス区切り文字として選択された理由は、その文字が非常にまれに使用されたため、Cでその方法が選択されたことです。 DOS/Windowsが来て、すべてを破った。 :-)

また、C#で、あなたは

String s = @"F:\abc\xyz.txt"; 

を書くことができます@プレフィックスは読み物事がずっと簡単になり、文字列内のエスケープシーケンスを無効にします。

関連する問題