我有一个字符串需要转换成String[]
字符串中每个单词的一个。但是,除了属于单词的连字符和撇号外,我不需要任何空格或任何标点符号。
示例输入:
Hello! This is a test and it's a short-er 1. - [ ] { } ___)
由输入组成的数组示例:
[ "Hello", "this", "is", "a", "test", "and", "it's", "a", "short-er", "1" ]
目前这是我尝试过的代码
(注意:第二个在程序中稍后string.First()
调用时会出错):
private string[] ConvertWordsFromFile(String NewFileText)
{
char[] delimiterChars = { ' ', ',', '.', ':', '/', '|', '<', '>', '/', '@', '#', '$', '%', '^', '&', '*', '"', '(', ')', ';' };
string[] words = NewFileText.Split(delimiterChars, StringSplitOptions.RemoveEmptyEntries);
return words;
}
或者
private string[] ConvertWordsFromFile(String NewFileText)
{
return Regex.Split(NewFileText, @"\W+");
}
第二个示例使用以下代码崩溃
private string GroupWordsByFirstLetter(List<String> words)
{
var groups =
from w in words
group w by w.First();
return FormatGroupsByAlphabet(groups);
}
具体来说,何时w.First()
被调用。