如何检查比较字符串值与数组中的每个元素?

时间:2013-12-24 18:32:32

标签: java arrays

所以我有一个字符串数组(sConsonantArray)并且存储了所有辅音。

String[] sConsonantArray = new String[] {"q","w","r","t","p","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m"};

我需要检查单词的第二个最后一个值(sWord)是否等于数组中的值,我不知道如何调用数组中的每个值来比较除了执行sConsonantArray之外的字母[5](每次检查每个)。我正在寻找一种更简单的方式来打电话给他们,感谢您的帮助。此外,似乎(&&)运算符不起作用,其他建议将不胜感激。

else if (sWord.substring(sWord.length()-2,sWord.length()-1).equals(sConsonantArray I DONT KNOW WHAT TO PUT HERE)) && (sWord.substring(sWord.length()-1,sWord.length()).equalsIgnoreCase("o"))

{
    System.out.println("The plural of " + sWord + " is " + (sWord + "es"));
}

2 个答案:

答案 0 :(得分:3)

在我看来,将辅音作为字符串然后使用charAt会更简单:

private static final String CONSONANTS = "bcdfgh...z";

if (CONSONANTS.indexOf(word.charAt(word.length() - 2)) {
    ...
}

如果您确实想要使用数组,可以将数组更改为有序,然后调用Arrays.binarySearch。另一种方法是创建HashSet<String>辅音并使用contains

答案 1 :(得分:0)

尝试类似

的内容
else if (Arrays.asList(sConsonantArray).contains(
     sWord.substring(sWord.length()-2,sWord.length()-1)) 
         &&  (sWord.substring(sWord.length()-1,sWord.length()).equalsIgnoreCase("o"))) {

        // do something
  }

或写一个小的Util方法

public static boolean isInConstants(String yourString){
String[] sConsonantArray = new String[] {"q","w...}
for (String item : sConsonantArray) {
    if (yourString.equalsIgnoreCase(item)) {
        return true;

    } 
}
 return false;

}