我想创建一个仅包含某些字符的单词的String[]
。比如我有一个包含多个字的,像这样一本字典:在 攻击 尝试 关注 吸引力 权威 自动 清醒 婴儿 回 坏 袋 创建只包含某些字符的字符串[]
手臂 军队 艺术 为 余额
我想缩小列表的范围,以便它只包含单词字符a
,b
和g
。因此在这个例子中列表应该只包含'bag'这个词。 目前我正在尝试使用正则表达式来做这件事,但是在我似乎无法使它正常工作之前从未使用它们。 这里是我的代码:
public class LetterJugglingMain {
public static void main(String[] args) {
String dictFile = "/Users/simonrhillary/Desktop/Dictionary(3).txt";
fileReader fr = new fileReader();
fr.openFile(dictFile);
String[] dictionary = fr.fileToArray();
String regx = "able";
String[] newDict = createListOfValidWords(dictionary, regx);
printArray(newDict);
}
public static String[] createListOfValidWords(String[] d, String regex){
List<String> narrowed = new ArrayList<String>();
for(int i = 0; i<d.length; i++){
if(d[i].matches(regex)){
narrowed.add(d[i]);
System.out.println("added " + d[i]);
}
}
String[] narrowArray = narrowed.toArray(new String[0]);
return narrowArray;
}
但返回的数组始终是空的,除非字符串的正则表达式是确切的词!有任何想法吗?如果需要,我可以发布更多的代码......我想我必须尝试初始化正则表达式错误。 缩小列表只能包含来自正则表达式的字符。
您可能需要预见性。不过,我宁愿在字符串中循环。 – nhahtdh
你应该考虑使用番石榴,更具体地说,它的'CharMatcher'。 – fge