簡體   English   中英

如何從字符串變量中的轉義序列中轉義

[英]How to escape from escape sequence in a string variable

我試圖將字符串變量初始化為文件之一的路徑。 它報告轉義序列無效。 有什么辦法嗎?

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

將@Hank D和@Seige的評論轉換為答案:

在Java和C#中(很難說出您在這里使用的是哪種語言,但是很可能是這兩種語言之一),反斜杠字符\\用於啟動轉義序列,您可以使用轉義序列在字符串中包括特殊字符, t通常在鍵盤上打字,否則會引起問題。 例如,您可以通過寫入\\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";

@前綴禁用字符串中的轉義序列,這使事情更容易閱讀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM