2014-03-30 184 views
0

如何在Unity中拆分json字符串?我有一個名爲entry_text的字符串,它由函數傳遞。當我打印出來。它是Split Json字符串

「的氣氛\ T7 \ nGravity \噸\ nMagnetism \噸\ nSeismic活動\噸\ nSurface \噸\ nTemperature \噸\ nWeather \噸\ nElement 1 \噸\ nElement 2 \噸\ nElement 3 \ t \ n7「,

其中包含"\t""\n"。所以我想分割字符串"\t""\n"

我用

string[] lines = entry_text.Split(new string[] {"\n"}, StringSplitOptions.None); 

我也試過

string[] lines = Regex.Split(entry_text, "\n"); 

這也不起作用:

string[] lines = entry_text.Split(new Char[] {'\n'}, StringSplitOptions.None); 

看來,拆分功能不採取 「\ n」作爲Json的輸入或「\ t」作爲空格。

+0

你是什麼意思,它不工作,完全是?你有錯誤的結果嗎?你的預期結果是什麼? –

+0

你的字符串是否有一個字面的'\ n'換行符,或者一個'\'字符後跟一個'n'字符?如果是後者,你試過'\\ n'而不是'\ n'嗎? – OnlineCop

+0

嗨,@ Selman22 ...我的意思是它沒有真正分裂它。因爲當我打印lines.Length,它仍然是1,也是線[0]只是完整的字符串... – Lisa

回答

1

如果你有這個作爲你的字符串:

string entry_text = "Atmosphere\t7\nGravity\t\nMagnetism\t\nSeismic Activity\t\nSurface\t\nTemperature\t\nWeather\t\nElement 1\t\nElement 2\t\nElement 3\t\n7"; 

請記住,\t\n該字符串是兩個單獨的字符:\後跟tn

當你定義:

string[] lines = entry_text.Split(new string[] {"\n"}, StringSplitOptions.None); 

{"\n"}被轉換成一個換行符,而不是兩個單獨的字符。對於這一點,你會想逃離\字符\n

string[] lines = entry_text.Split(new string[] {"\\n"}, StringSplitOptions.None); 

寫這個的另一種方法是使用@符號,它的意思是「取義字符在這個字符串,而不是逃避他們」 :

string[] lines = entry_text.Split(new string[] {@"\n"}, StringSplitOptions.None); 
0

您可以使用多個分隔符:

string[] lines = entry_text.Split('\t', '\n'); 

如果你想Split通過新行字符,你也可以試試這個:

string[] lines = entry_text.Split(new[] { Environment.NewLine }, StringSplitOptions.None);