我有一组特别是diretory的文件。
从目录中的所有文件(文本文件)中检索内容后,我有一个 字符串列表。
每个字符串元素表示从每个文件中检索的内容。因此列表中的第一个String元素表示第一个文件中的内容。
现在我想分割字符串以获取单词。(后来单词存储为字符串数组) 1)单词可以由单个空格/多个空格分隔。 2)句子以'结束。所以在'之后可以开始一个新词。' 3)新单词可以在' \ n'
之后开始那么有人可以建议一个可以适合split()方法的正则表达式吗?
答案 0 :(得分:4)
也许StringTokenizer
课程更适合您的需要。构造函数接受字符串标记化和分隔符列表(在您的情况下:空格,。和换行符)。
答案 1 :(得分:1)
String[] result = myString.split("[\\.\\s]");
答案 2 :(得分:0)
你可能不需要regexp,只需从文件中删除每个非字母字符,然后使用Tokenizer读取每个单词。
答案 3 :(得分:-1)
我建议使用令牌...只需浏览每个角色,然后根据角色的内容决定做什么。这是伪代码
string word = "";
while ( EOF ){
char = getNextChar()
if ( char not space or full-stop ){
append the char to the word
}
else {
if ( the word is empty ){ continue /* ignore multi space */ }
else {
add the word to an array of words
reset the word to ""
}
}
}
这样,您可以完全控制处理数据的方式 - 您不必担心要包含在正则表达式规则中的疯狂方案。最重要的是,这是最有效的方式(def优于正则表达式)并且您只进行一次数据传递。