我通过字典文件希望环路,发现只包含给定字符的单词
例如DGO
预期效果:狗,神
包含(在其中)不言,对字符
我用下面的代码工作:
while((dictionaryWord = br_.readLine()) != null)
{
if(dictionaryWord.contains(getWord()))
System.out.println(dictionaryWord);
}
但是,这给了我包含给定字符的所有的话 - 不希望
如果没有正则表达式:
public static boolean sameCharacters(String left, String right) {
return sortCharacters(left).equals(sortCharacters(right));
}
private static String sortCharacters(String s) {
final char[] chars = s.toCharArray();
Arrays.sort(chars);
return String.valueOf(chars);
}
UPDATE:性能更好的版本(感谢user384706):
public static boolean sameCharacters(String left, String right) {
return Arrays.equals(sortCharacters(left), sortCharacters(right));
}
private static char[] sortCharacters(String s) {
final char[] chars = s.toCharArray();
Arrays.sort(chars);
return chars;
}
你可以通过做检查
if (word.matches("[dgo]*")) {
...
}