我有一个文件,在Notepad ++中打开后看起来它包含由3个空字符分隔的字符串。 我试过了:
using (StreamReader _sr = new StreamReader(FilePath)){
string _stuff = _sr.ReadToEnd();
string[] _test = _stuff.Split(new char[]{(char) 0},3);
}
但_test
,即分割的结果显示了字符串的大部分(包括由3个空值分隔的字符串)。
我该怎么做呢:
AAA的 NULNULNUL BBB的 NULNULNUL CCCC的 NULNULNUL
进入这个:
{ “AAA”, “BBB”, “CCC”}
答案 0 :(得分:5)
只需String.Split
:
String source = "AAA\0\0\0BBB\0\0\0CCCC\0\0\0";
String[] result = source.Split(
new Char[] { '\0' },
StringSplitOptions.RemoveEmptyEntries);
测试:
// AAA, BBB, CCCC
Console.Write(String.Join(", ", result));
如果您想要按三倍 NUL 分割:
String[] result = source.Split(
new String[] { "\0\0\0" },
StringSplitOptions.RemoveEmptyEntries);
答案 1 :(得分:0)
_stuff.Split("NUL").Where(x=> !string.IsNullOrEmpty(x)).ToArray()
这样你就不在乎NUL重复次数了。
感谢& fubo - > _stuff.Split("NUL", StringSplitOptions.RemoveEmptyEntries).ToArray()
如果NULL表示null char,则可以使用'\ 0'
答案 2 :(得分:0)
您正在使用控制字符解析字符串。 NUL
是0 th 控制字符。您可以使用以下内容:
var _test = _stuff.Split(new []{(char) 0});
答案 3 :(得分:0)
var cleanArray = Regex.Replace(source, @"\0+", " ")
.Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries);
参加聚会的时间已经很晚了,但这样做很好。