java - 检查字符串中的辅音

标签 java contains indexof

我想使用 .contains.indexOf 编写一个方法来检查 consonantsstring .

我想我可以做很长的路,检查字母表中的每个 辅音,但我知道有更好的方法。到目前为止,这是我所拥有的,但就像我说的那样,我认为这有点漫长。

   public boolean containsConsonant(String searchString) {
        if(searchString.contains("b") || searchString.contains("c")){
            return true;
        }

最佳答案

我认为一个简单的for loop 在这里是最易读的,您可以使用 boolean 值 and 测试字符是否在所需范围内。您可以使用 or 测试来跳过元音。类似的东西,

public boolean containsConsonant(String searchString) {
    if (searchString == null) {
        return false;
    }
    for (char ch : searchString.toCharArray()) {
        char lower = Character.toLowerCase(ch);
        if (lower >= 'a' && lower <= 'z') {
            if (lower == 'a' || lower == 'e' || lower == 'i' || 
                    lower == 'o' || lower == 'u') continue;
            return true;
        }
    }
    return false;
}

优化

然后您可以使用 contains优化上述内容(并且直接您的问题)在提取的常量上 Stringvowels .类似的东西,

private static final String vowels = "aeiou";
public static boolean containsConsonant(final String searchString) {
    if (searchString == null) {
        return false;
    }
    for (char ch : searchString.toCharArray()) {
        char lower = Character.toLowerCase(ch);
        if (lower >= 'a' && lower <= 'z' && !vowels.contains(String.valueOf(lower))) {
            return true;
        }
    }
    return false;
}

关于java - 检查字符串中的辅音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35677954/

相关文章:

jQuery :contains(unicode_characters)

java - contains() 方法的问题

javascript - 在 if 语句中对数组使用 indexOf 的结果不一致

java - 如何执行调用 ListView 项目上的特定号码

java - StringBuffer类与汉字编码

java - 全屏 Swing 框架在 Linux 中无法正确聚焦(Windows 没问题)

java - 哪种数据结构更适合使用顺序搜索来搜索元素 - 数组列表还是链接列表?

javascript - indexof 在变量为空或指定值之前不会更改,即使它应该检查每个 keyup 事件

java - 不使用replace()用字符串替换子字符串

java - 使用服务内的广播接收器检测调用结束