文本1:
一些包含}和再次}或者可能}的文字
文本2:
一些文本包含##和##或者##
我的代码
string str1 = "Some text that contained } and again } or maybe }";
// Some time its contained ##
string[] words;
if (str1.Contains("}"))
{
words = str1.Split("}");
}
else if (str1.Contains ("##"))
{
words = str1.Split("##");
} else {
words = null;
}
Run Code Online (Sandbox Code Playgroud)
我有2个错误
'string.Split(params char [])'的最佳重载方法匹配有一些无效的参数
和
参数'1':无法从'string'转换为'char []'}
尝试使用
str1.Split(new [] {"}"}, StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)
和
str1.Split(new [] {"##"}, StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)
的使用StringSplitOptions.None,如果你想保留空字符串
string.Split仅在下一个签名中将输入作为字符串:Split(String[], StringSplitOptions)和Split(String[], Int32, StringSplitOptions).所以至少你需要指定StringSplitOptions一个字符串并将其转换为一个字符串的数组,否则编译器不知道你试图调用什么方法.
您可以通过删除一个if语句来减少逻辑.Split如果没有找到输入字符串的出现,方法不会抛出任何异常.
string str1 = "Some text that contained } and again } or maybe }";
string[] words;
if (str1.Contains("}") || str1.Contains ("##"))
{
words = str1.Split(new [] {"}", "##"}, StringSplitOptions.RemoveEmptyEntries);
}
else
{
words = null;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12409 次 |
| 最近记录: |