我正在尝试创建一个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;
}
但是返回的数组总是空的,除非字符串正则表达式是确切的单词!有任何想法吗?如果需要,我可以发布更多代码......我想我必须尝试错误地初始化正则表达式。缩小的列表必须仅包含正则表达式中的字符。