使用任意或所有分隔符之一按单词拆分字符串
本文关键字:单词 拆分 字符串 分隔符 任意 | 更新日期: 2023-09-27 17:56:22
我可能刚刚到了我想太多的地步,但我想知道:有没有办法指定一个应该被视为分隔符的特殊字符列表,然后使用该列表拆分字符串?例:
"battlestar.galactica-season 1"
应返回为
battlestar galactica season 1
我在想正则表达式,但我现在有点慌张,盯着它看了太久。
编辑:谢谢大家证实我怀疑我想多了,哈哈:这是我最终得到的:
//remove the delimiter
string[] tempString = fileTitle.Split(@"'/.-<>".ToCharArray());
fileTitle = "";
foreach (string part in tempString)
{
fileTitle += part + " ";
}
return fileTitle;
我想我也可以用" "空格替换分隔符...计时器一到,我就会选择一个答案!
内置的
String.Split
方法可以将字符集合作为分隔符。
string s = "battlestar.galactica-season 1";
string[] words = s.split('.', '-');
标准的拆分方法可以为您做到这一点。 它需要一个字符数组:
public string[] Split(
params char[] separator
)
你可以调用split的重载:
myString.Split(new char[] { '.', '-', ' ' }, StringSplitOptions.RemoveEmptyEntries);
char 数组是要拆分的分隔符列表。
"battlestar.galactica-season 1".Split(new string[] { ".", "-" }, StringSplitOptions.RemoveEmptyEntries);
这可能不完整,但像这样。
string value = "battlestar.galactica-season 1"
char[] delimiters = new char[] { ''r', ''n', '.', '-' };
string[] parts = value.Split(delimiters,
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < parts.Length; i++)
{
Console.WriteLine(parts[i]);
}
您是尝试拆分字符串(制作多个字符串),还是只想用空格替换特殊字符,正如您的示例也可能建议的那样(制作 1 个更改的字符串)。对于第一个选项,只需查看其他答案:)
如果要替换,可以使用
string title = "battlestar.galactica-season 1".Replace('.', ' ').Replace('-', ' ');
有关更多信息,您可以通过简单的示例拆分,您可能会看到以下 URL:
这还包括单词拆分(多个字符)。C# 拆分函数说明