Kun*_*esh 60 .net c# string split
我有一个字符串"4,6,8 \n9,4"
我想基于和\n分割这个
输出数组应该是
4
6
8
9
4
Run Code Online (Sandbox Code Playgroud)
编辑:
现在我正在从控制台读取字符串,当我在控制台中输入如上所示的字符串时,在后面的代码中我得到了"4,6,8\\n9,4".现在我想分开使用"," and "\\n".我怎样才能改变表达方式?
Cha*_*thJ 114
string strings = "4,6,8\n9,4";
string [] split = strings .Split(new Char [] {',' , '\n' });
Run Code Online (Sandbox Code Playgroud)
编辑
如果你得到任何不必要的空项,请尝试以下.String.Split方法(String [],StringSplitOptions)
string [] split = strings .Split(new Char [] {',' , '\n' },
StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)
EDIT2
这适用于您更新的问题.将所有必要的拆分字符添加到char [].
string [] split = strings.Split(new Char[] { ',', '\\', '\n' },
StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)
小智 8
另一种选择是使用Regex.Split.当分割序列更复杂时,这很有用.例如,如果空格也可以是拆分分隔符的一部分,例如:
"4,6,8 , 9\\n\\n4"
Run Code Online (Sandbox Code Playgroud)
然后:
using System.Text.RegularExpressions;
var i = "4,6,8 , 9\n\n4";
var o = Regex.Split(i, @"[,\s\n]+");
// now o is:
// new string[] { "4", "6", "8", "9" }
Run Code Online (Sandbox Code Playgroud)
请注意,使用的正则表达式是"更接受" - 它忽略了\n之间的空"空格",它会接受"4 6 8 9 4"一样 - 所以上面要显示一点:还有更多而不是一种皮肤猫的方式.
快乐的编码.
var s = "4,6,8\n9,4";
var split = s.Split(new char[]{',', '\n'});
Run Code Online (Sandbox Code Playgroud)
但这必须是一个骗局......
编辑:解决评论.
这段代码:
static void Main(string[] args)
{
var s = "4,6,8\n9,4";
foreach (var a in s.Split(new char[] { ',', '\n' }))
System.Diagnostics.Debug.WriteLine(a);
}
Run Code Online (Sandbox Code Playgroud)
输出:
4
6
8
9
4
Run Code Online (Sandbox Code Playgroud)
编辑:从控制台读取输入是不同的. \n手动输入时有所不同.
static void Main(string[] args)
{
var s = "4,6,8\\n9,4";
foreach (var a in s.Split(new string[] { ",", "\\n" }, StringSplitOptions.RemoveEmptyEntries))
System.Diagnostics.Debug.WriteLine(a);
}
Run Code Online (Sandbox Code Playgroud)