然而我的特殊字符作为单词计算,所以我的上面的句子被认为有7个单词。请帮忙!提前谢谢你:)
static void Main(string[] args)
{
char[] delimiterChars = { ' ', ',', '.', ':', '?', '!' };
Console.Write("Enter a sentence: ");
string x = Console.ReadLine();
Console.WriteLine("The sentence is: ", x);
string[] words = x.Split(delimiterChars);
Console.WriteLine("{0} words in text:", words.Length);
foreach (string s in words)
{
Console.WriteLine(s);
}
}
答案 0 :(得分:2)
你的程序会在你的句子中计算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);
}
}
答案 1 :(得分:1)
更改此行:
string[] words = x.Split(delimiterChars);
为:
string[] words = x.Split(delimiterChars, StringSplitOptions.RemoveEmptyEntries);
答案 2 :(得分:1)
问题是多个分隔符出现在另一个之后,因此数组确实不包含任何分隔符,而是null
值,其中分隔符之间没有单词。您可以使用
x.Split(delimiterChars, StringSplitOptions.RemoveEmptyEntries)