Java 如果第一个字母是否为辅音,则返回布尔值

Java 如果第一个字母是否为辅音,则返回布尔值,java,boolean,Java,Boolean,我有一个我正在写的程序,它可以把单词翻译成拉丁语(真正的基本练习) 我可以让辅音转换成pig拉丁语,没有问题,但另一方面,我需要检查第一个字母是否是辅音,如果不是,翻译就会改变 我已经建立了一个方法来检查单词的第一个字母是否是辅音,以及是否返回布尔值为true或false 由于某些原因,该方法不会运行“else”语句 下面是编写的方法 private static boolean firstLetterConsonant(String s) { boolean isConsonant;

我有一个我正在写的程序,它可以把单词翻译成拉丁语(真正的基本练习) 我可以让辅音转换成pig拉丁语,没有问题,但另一方面,我需要检查第一个字母是否是辅音,如果不是,翻译就会改变

我已经建立了一个方法来检查单词的第一个字母是否是辅音,以及是否返回布尔值为true或false

由于某些原因,该方法不会运行“else”语句

下面是编写的方法

private static boolean firstLetterConsonant(String s)
{
    boolean isConsonant;

    //check to see if the first letter is not a vowel
    if(s != "a" && s != "e" && s != "i" && s != "o" && s != "u")
    {
        isConsonant = true;
    } else {
        isConsonant = false;
    }
    return isConsonant;
}
作为旁注,该方法将传递用户在程序其他位置输入的字符串。

您有3个选项

  • 使用
    String#startsWith()
    和if条件检查5个元音(就像您正在做的那样)

  • 使用
    String#charAt()
    从字符串中取出第一个字符,检查它是否是元音(如果是元音,则返回false)

  • 使用
    String#matches
    并使用
    “(?i)[^aeiou].*”

  • 你有3个选择

  • 使用
    String#startsWith()
    和if条件检查5个元音(就像您正在做的那样)

  • 使用
    String#charAt()
    从字符串中取出第一个字符,检查它是否是元音(如果是元音,则返回false)

  • 使用
    String#matches
    并使用
    “(?i)[^aeiou].*”


  • 这确实是一个相当简单的解决办法

    private static boolean firstLetterConsonant(String s) {
        boolean isConsonant = true;
    
        if ("".equals(s))
            return false;
    
        //check to see if the first letter is not a vowel
        switch(s.charAt(0)) {
            case 'A':
            case 'a':
            case 'E':
            case 'e':
            case 'I':
            case 'i':
            case 'O':
            case 'o':
            case 'U':
            case 'u': isConstant = false;
        }
        return isConsonant;
    }
    
    您正在检查字符串本身,但应该只检查第一个字符



    或者您可以只使用
    String.matches
    函数并传入
    “(?i)[^aeiou].*”
    。正则表达式更好。

    这确实是一个非常简单的解决方案

    private static boolean firstLetterConsonant(String s) {
        boolean isConsonant = true;
    
        if ("".equals(s))
            return false;
    
        //check to see if the first letter is not a vowel
        switch(s.charAt(0)) {
            case 'A':
            case 'a':
            case 'E':
            case 'e':
            case 'I':
            case 'i':
            case 'O':
            case 'o':
            case 'U':
            case 'u': isConstant = false;
        }
        return isConsonant;
    }
    
    您正在检查字符串本身,但应该只检查第一个字符



    或者您可以只使用
    String.matches
    函数并传入
    “(?i)[^aeiou].*”
    。正则表达式更好。

    简单地说,您可以这样做:

    当您将字符串值传递给此方法时,应该检查它是否为null。因为若字符串值为null,它将引发null指针异常

    private static boolean firstLetterConsonant(String s)
    {   
     char l = s.toLowerCase().trim().charAt(0);
     //check to see if the first letter is not a vowel
     if (l!='a' && l!='e' && l!='i' && l!='o' && l!='u')) {   
        return true;
     }
    return false;
    }
    

    简单地说,您可以这样做:

    当您将字符串值传递给此方法时,应该检查它是否为null。因为若字符串值为null,它将引发null指针异常

    private static boolean firstLetterConsonant(String s)
    {   
     char l = s.toLowerCase().trim().charAt(0);
     //check to see if the first letter is not a vowel
     if (l!='a' && l!='e' && l!='i' && l!='o' && l!='u')) {   
        return true;
     }
    return false;
    }
    


    你不是在检查第一个字母,而是在检查整个字符串
    charc=s.charAt(0)
    @Techiee不要急于下结论。我没有投你反对票。。。直到now@Tibrogargan:对不起宪兵:我在回答中写道,他是在比较字符串而不是我知道不正确的字符。你让我想知道是否有办法查询区域设置(或其他Java类)以获得被认为是元音的字符数组。你不是在检查第一个字母,而是在检查整个字符串
    charc=s.charAt(0)
    @Techiee不要急于下结论。我没有投你反对票。。。直到now@Tibrogargan:对不起宪兵:我在回答中写道,他是在比较字符串而不是我知道不正确的字符。你让我想知道是否有办法查询区域设置(或其他Java类)以获得被认为是元音的字符数组最后一个没有大写,否?。另外,
    -1==“aeiou”.indexOf(s.substring(0,1).toLowerCase())
    XD@Tibrogargan-否。
    ?i
    选项使匹配不区分大小写。它同时检查大写字母和小写字母。你只是偷偷把它放在那里:)谢谢,我用了第三种方法,我让它工作了。最后一种没有大写字母,不是吗?。另外,
    -1==“aeiou”.indexOf(s.substring(0,1).toLowerCase())
    XD@Tibrogargan-否。
    ?i
    选项使匹配不区分大小写。它检查大写字母和小写字母。你只是偷偷地把它放在那里:)谢谢,我使用了第三种方法,我让它工作了。当第一个字母不是辅音时,你返回
    true
    。Lol漏掉了。修正了。当第一个字母不是辅音时返回
    true
    。Lol滑出。修复了它。如果您使用
    false
    初始化
    isconsant
    ,则可以删除
    else
    块。确实可以。谢谢。@QBrute您甚至不需要
    isconsant
    <代码>如果(1!='a'[…])返回true;返回false。是的。谢谢,如果您使用
    false
    初始化
    isconsant
    ,您可以删除
    else
    块。是的。谢谢。@QBrute您甚至不需要
    isconsant
    <代码>如果(1!='a'[…])返回true;返回false。是的。谢谢