如何分割这条线?

Son*_*hja 0 c# split

我正在尝试拆分此字符串行:

"\"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)

Ren*_*ogt 5

你的字符串的内容实际上是"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)