Java 检查是否有任何3个辅音
我有一个代码来检查字符串中是否有三个相同的连续辅音。看起来是这样的:Java 检查是否有任何3个辅音,java,string,char,Java,String,Char,我有一个代码来检查字符串中是否有三个相同的连续辅音。看起来是这样的: String cons = "bcdfghjklmnpqrstvwxyz"; char[] consonants = cons.toCharArray(); int z = 0; Scanner scan = new Scanner(System.in); System.out.println("Enter your word!"); Stri
String cons = "bcdfghjklmnpqrstvwxyz";
char[] consonants = cons.toCharArray();
int z = 0;
Scanner scan = new Scanner(System.in);
System.out.println("Enter your word!");
String word = scan.next().toLowerCase();
int length = word.length();
char[] ch = word.toCharArray();
for (int i = 0; i < length-2; i++) {
for (int j = 0; j < 21; j++) {
if ((ch[i] == consonants[j]) &&
(ch[i + 1] == consonants[j])
&& (ch[i + 2] == consonants[j])) {
z++;
break;
}
}
if (z == 1)
break;
}
if (z == 1) {
System.out.println("Three consecutive consonants here!");
} else {
System.out.println("It is fine!");
}
String cons=“bcdfghjklmnpnpqrstvwxyz”;
char[]辅音=cons.toCharArray();
int z=0;
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入您的单词!”);
String word=scan.next().toLowerCase();
int length=word.length();
char[]ch=word.toCharArray();
对于(int i=0;i
但我想检查三个连续的辅音。找到诸如圣诞节、国家、孩子、学校等词
我也不知道我该如何修改代码来实现它。你能帮忙吗?在我看来,最好的方法是按字符循环搜索要搜索的单词。每次您当前所在的字母位于辅音数组中时,将一个字母添加到
z
。每当您当前使用的字母不在辅音数组中时,请将z
设置为零。如果在任何一点,z
等于3,那么您就知道正在搜索的字符串在一行中有3个辅音,并且您可以中断循环。如果您到达循环的末尾并且z
从未到达三个,那么您就知道您正在搜索的字符串没有三个连续的辅音。我希望这能有所帮助,祝您在编码方面好运 在我看来,最好的方法是按字符循环搜索要搜索的单词。每次您当前所在的字母位于辅音数组中时,将一个字母添加到z
。每当您当前使用的字母不在辅音数组中时,请将z
设置为零。如果在任何一点,z
等于3,那么您就知道正在搜索的字符串在一行中有3个辅音,并且您可以中断循环。如果您到达循环的末尾并且z
从未到达三个,那么您就知道您正在搜索的字符串没有三个连续的辅音。我希望这能有所帮助,祝您在编码方面好运 你应该看看字符串文档,尤其是contains()方法。你应该看看字符串文档,尤其是contains()方法。我认为如果你声明自己是一个像private static boolean isconant(char ch)
这样的辅助方法,会更容易管理。此方法将在辅音
数组上包含一个循环,如果参数与辅音之一相同,则返回true
现在在主程序中,您可以循环输入单词的字符,同时保持连续辅音的计数。我将以国家
为例。如果你使用c
,你的方法应该告诉你这是一个辅音,所以将计数增加到1o
不是,因此重置为零。对u
执行相同的操作(不改变任何内容,但这是最简单的操作)。现在来了n
,t
和r
,所以你的计数会增加到1,然后是2,然后是3。当它达到3时,你就完成了,因为你知道你有3个连续的辅音
在循环中,您将在
if
-else
语句中调用方法,如if(isconsant(ch))
…您将有另一个if
语句来查看计数是3-在第一个语句内部还是之后。我认为,如果您声明自己是一个辅助方法,如private static boolean isconant(char ch)
,将更容易管理。此方法将在辅音
数组上包含一个循环,如果参数与辅音之一相同,则返回true
现在在主程序中,您可以循环输入单词的字符,同时保持连续辅音的计数。我将以国家
为例。如果你使用c
,你的方法应该告诉你这是一个辅音,所以将计数增加到1o
不是,因此重置为零。对u
执行相同的操作(不改变任何内容,但这是最简单的操作)。现在来了n
,t
和r
,所以你的计数会增加到1,然后是2,然后是3。当它达到3时,你就完成了,因为你知道你有3个连续的辅音
在循环中,您将在
if
-else
语句中调用您的方法,如if(isConsonant(ch))
…您将有另一个if
语句来查看计数是3-在第一个语句中还是在第一个之后。您已询问如何更改代码以使其工作,因此,以下内容基于您的代码并将起作用:
String cons = "bcdfghjklmnpqrstvwxyz";
char[] consonants = cons.toCharArray();
int z = 0;
Scanner scan = new Scanner(System.in);
System.out.println("Enter your word!");
String word = scan.next().toLowerCase();
int length = word.length();
char[] ch = word.toCharArray();
for (int i = 0; i < length; i++) {
boolean isConsonant = false;
for (int j = 0; j < 21; j++) {
if (ch[i] == consonants[j]) {
isConsonant = true;
break;
}
}
if (isConsonant) {
z++;
if (z == 3)
break;
} else {
z = 0;
}
}
if (z == 3) {
System.out.println("Three consecutive consonants here!");
} else {
System.out.println("It is fine!");
}
[a-z]
是从a到z的任意字符,[^aeiuo]
是除元音以外的任意字符。使用&&
完成两者的相交,得到的[a-z&&[^aeiuo]]
表示辅音。当我们寻找三个连续的辅音时,{3}
被相应地添加
在这里,您可以找到有关正则表达式的详细信息:您已询问如何更改代码以使其正常工作,因此以下内容基于您的代码并将正常工作:
String cons = "bcdfghjklmnpqrstvwxyz";
char[] consonants = cons.toCharArray();
int z = 0;
Scanner scan = new Scanner(System.in);
System.out.println("Enter your word!");
String word = scan.next().toLowerCase();
int length = word.length();
char[] ch = word.toCharArray();
for (int i = 0; i < length; i++) {
boolean isConsonant = false;
for (int j = 0; j < 21; j++) {
if (ch[i] == consonants[j]) {
isConsonant = true;
break;
}
}
if (isConsonant) {
z++;
if (z == 3)
break;
} else {
z = 0;
}
}
if (z == 3) {
System.out.println("Three consecutive consonants here!");
} else {
System.out.println("It is fine!");
}
[a-z]
是从a到z的任意字符,[^aeiuo]
是除元音以外的任意字符。使用&
String cons = "bcdfghjklmnpqrstvwxyz";
int z = 0;
Scanner scan = new Scanner(System.in);
System.out.println("Enter your word!");
String word = scan.next().toLowerCase();
//int length = word.length();
char[] ch = word.toCharArray();
for (int i = 0; i < ch.length-2; i++) {
if (
cons.indexOf(ch[i])!=-1 &&
cons.indexOf(ch[i+1])!=-1 &&
cons.indexOf(ch[i+2])!=-1
)
{
z++;
break;
}
if (z == 1)
break;
}
if (z == 1) {
System.out.println("Three consecutive consonants here!");
} else {
System.out.println("It is fine!");
}
}