我正在尝试拆分此字符串行:
"\"Language\" \"english\""
Run Code Online (Sandbox Code Playgroud)
该行来自本文:
"Language" "english"
Run Code Online (Sandbox Code Playgroud)
从txt文件中读取时.
我试过这个:
string[] allParts = line.Split(new char[0], StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)
linevar包含上面的字符串在哪里.我试过的东西给了我以下数组:
但是我想要将两个字符串分开,并且我无法从中删除"\它,并且它在另一个我只需要字符串的地方失败了.关于如何实现这一点的任何想法?
我想要这个输出:
allParts[0] --> "Language"
allParts[1] --> "english"
Run Code Online (Sandbox Code Playgroud)
你的字符串的内容实际上是"Language" "english"!
没有反斜杠.在调试器窗口显示反斜杠,因为它显示的字符串文字,你会写在你的代码:
string s = "\"Language\" \"english\"";
Run Code Online (Sandbox Code Playgroud)
在这里,您使用反斜杠来转义引号(").只需将字符串分隔为空格:
string[] parts = s.Split(' ');
Run Code Online (Sandbox Code Playgroud)
你的结果字符串将是"Language"和"english"(包括那些双引号).
如果您在控制台(Console.WriteLine(parts[0]);)中输出部件,您将看到此输出:
"Language"
"english"
Run Code Online (Sandbox Code Playgroud)
如果你想摆脱它,"你可以简单地修剪字符串:
string part0 = parts[0].Trim('"');
string part1 = parts[1].Trim('"');
Run Code Online (Sandbox Code Playgroud)
如果你输出part0,part1现在你得到这个输出:
Language
english
Run Code Online (Sandbox Code Playgroud)
您可以将这两个步骤组合在一起:
string[] parts = s.Split(' ').Select(p => p.Trim('"')).ToArray();
Run Code Online (Sandbox Code Playgroud)