c#如何不将分隔符计算为一个单词
我应该输入一个句子,例如你好,我叫安!它将打印出5个单词的数量,并打印出如下单词: 你好 我的 名称 是 安 然而,我的计算特殊字符作为一个词,所以我的句子上面被认为有7个词。请帮忙!提前感谢:) 更改此行:c#如何不将分隔符计算为一个单词,c#,count,delimiter,C#,Count,Delimiter,我应该输入一个句子,例如你好,我叫安!它将打印出5个单词的数量,并打印出如下单词: 你好 我的 名称 是 安 然而,我的计算特殊字符作为一个词,所以我的句子上面被认为有7个词。请帮忙!提前感谢:) 更改此行: string[] words = x.Split(delimiterChars); 致: 问题是多个分隔符一个接一个出现,因此数组实际上不包含任何分隔符,而是包含分隔符之间没有单词的null值。您可以通过使用 x.Split(delimiterChars, StringSplitOpti
string[] words = x.Split(delimiterChars);
致:
问题是多个分隔符一个接一个出现,因此数组实际上不包含任何分隔符,而是包含分隔符之间没有单词的
null
值。您可以通过使用
x.Split(delimiterChars, StringSplitOptions.RemoveEmptyEntries)
您的程序在您的句子中不计算2个空条目。这是因为逗号和空格的组合。例如,它为它们之间的0字符条目创建一个数组条目。您可以使用
StringSplitOptions.RemoveEmptyEntries
来避免这种情况
代码应该如下所示:
static void Main(string[] args)
{
char[] delimiterChars = { ' ', ',', '.', ':', '?', '!' };
Console.Write("Enter a sentence: ");
string x = "Hello, my name is Ann!";
Console.WriteLine("The sentence is: ", x);
string[] words = x.Split(delimiterChars, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine("{0} words in text:", words.Length);
foreach (string s in words)
{
Console.WriteLine(s);
}
}
x.Split(delimiterChars, StringSplitOptions.RemoveEmptyEntries)
static void Main(string[] args)
{
char[] delimiterChars = { ' ', ',', '.', ':', '?', '!' };
Console.Write("Enter a sentence: ");
string x = "Hello, my name is Ann!";
Console.WriteLine("The sentence is: ", x);
string[] words = x.Split(delimiterChars, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine("{0} words in text:", words.Length);
foreach (string s in words)
{
Console.WriteLine(s);
}
}