2017-04-16 229 views
-4

我嘗試在字符串中找到「\ n」。我的代碼在這裏不起作用。什麼是正確的方法?謝謝如何在字符串中找到「 n」?

string text = "hello\nworld"; 

for(int i=1; i<text.Length ;i++) 
{ 
    if 
    (
    text[i-1]== '\\' 
    && 
    text[i]== 'n' 
    ) 
    { 
     Debug.Log("break at: "+i); 
    } 
} 
+0

\ n是一個換行符,通常是由CRLF表示相信,所以你需要尋找CHAR(13) ,char(10),或者它可能只是char(10),認爲\ r \ n是crlf – Charleh

+0

@Charleh \ n只代表LF,\ r是CR –

+0

是啊剛剛意識到:)更新了我的評論 – Charleh

回答

0

\n是不是兩個字符。它是「換行」值的兩個字符表示(請參閱任何ASCII圖表上的10的值)。如果你想找到的人物造型,你需要在單個字符使用兩個符號像'\n'

+0

感謝.. – cubecube

+0

請參閱[C#語言規範](http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf)中的「9.4.4.4字符文字」。它表示'\ n'是[U + 000A LINE FEED(LF)]的轉義序列(http://www.fileformat.info/info/unicode/char/000A/index.htm)。提到ASCII是誤導性的。 .NET(以及Java,JavaScript,HTML,XML,... NCHAR,NVARCHAR,...)使用[Unicode]的UTF-16編碼(http://www.unicode.org/charts/nameslist/index.html)。 –

0

\ n是一個控制字符,如嘗試條件

文[I] ==「\ n」

和init i = 0,不是i = 1

+0

好簡單,謝謝:) – cubecube

0

正確地說'\ n'是一個字符,代表換行。這意味着,斜槓是轉義鍵,例如用於表示特殊的空白字符(As \ n是一個)。如果你想尋找它,你因此必須尋找其作爲單個字符:

var text = "hello\nworld"; 
for (var i = 0; i < text.Length; i++) 
    if(text[i] == '\n') 
     Debug.Log($"break at: {i}"); 
相關問題