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