我想創建一個僅包含某些字符的單詞的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