JAVA:
编写一个类,其中构造函数接受一个String对象作为其参数。该类应该有一个方法返回字符串中元音的数量,另一个方法返回字符串中辅音的数量。(空格既不计元音也不计辅音,应该忽略。)
在执行以下步骤的程序中演示该类:
a、 计算字符串中元音的数量。
b、 数一数字符串中的辅音数
c、 数一数字符串中的元音和辅音
d、 输入另一个字符串
e、 退出程序
我已经写了代码:什么时候可以检查我的选项d,当我输入另一个字符串时,它给元音和辅音计数0。
Scanner sc = new Scanner(System.in);
System.out.println("Enter a String: ");
String input1 = sc.nextLine();
VowelsAndConsonants vc = new VowelsAndConsonants(input1.toLowerCase());
System.out.println("\nWhat would you like to do? Enter:\n" + "'a' to count the vowels\n"
+ "'b' to count consonants\n" + "'c' to count both vowels and consonants\n"
+ "'d' to enter another String\n" + "'e' to exit the program");
char input2 = sc.next().charAt(0);
while (input2 != 'e') {
if (input2 == 'a') {
System.out.println("Vowels: " + vc.vowelsCount());
} else if (input2 == 'b') {
System.out.println("Consonants: " + vc.consonantCount());
} else if (input2 == 'c') {
System.out.println("Vowels: " + vc.vowelsCount());
System.out.println("Consonants: " + vc.consonantCount());
} else if (input2 == 'd') {
System.out.println("Enter another string: ");
input1 = sc.nextLine();
vc = new VowelsAndConsonants(input1.toLowerCase());
}
System.out.println("\nWhat would you like to do? Enter:\n" + "'a' to count the vowels\n"
+ "'b' to count consonants\n" + "'c' to count both vowels and consonants\n"
+ "'d' to enter another String\n" + "'e' to exit the program");
input2 = sc.next().charAt(0);
}
System.out.println("Have a great day!");
这是一个工作程序,将做你正在寻找:
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a String: ");
String input1 = sc.next();
VowelsAndConsonants vc = new VowelsAndConsonants(input1.toLowerCase());
boolean flag =true;
while (flag) {
System.out.println("\nWhat would you like to do? Enter:\n" + "'a' to count the vowels\n"
+ "'b' to count consonants\n" + "'c' to count both vowels and consonants\n"
+ "'d' to enter another String\n" + "'e' to exit the program");
String input2 = sc.next();
switch (input2) {
case "a":
System.out.println("Vowels: " + vc.vowelsCount());
break;
case "b":
System.out.println("Consonants: " + vc.consonantCount());
break;
case "c":
System.out.println("Vowels: " + vc.vowelsCount());
System.out.println("Consonants: " + vc.consonantCount());
break;
case "d":
System.out.println("Enter another string: ");
input1 = sc.next();
vc = new VowelsAndConsonants(input1.toLowerCase());
break;
case "e":
flag=false;
break;
default:
System.out.println("wrong selection please try again");
}
}
System.out.println("Have a great day!");
}
}
class VowelsAndConsonants {
String str;
public VowelsAndConsonants(String str){
this.str = str;
}
public int vowelsCount(){
str = str.replaceAll("[\\W]", ""); //remove non-chars
int strLength = str.length();
str = str.replaceAll("[aeiou]", "");
return strLength-str.length();
}
public int consonantCount(){
str = str.replaceAll("[\\W]", ""); //remove non-chars
int strLength = str.length();
str = str.replaceAll("[aeiou]", "");
return str.length();
}
}
我希望这能有所帮助。
当您混合Scanner
的Next()
和nextLine()
方法时,这是一个众所周知的问题。当您调用Next()
时,它会返回下一个单词,直到换行符,但将换行符留在缓冲区中。剩余输入的第一行现在是空行。
然后,当您调用nextLine()时,它返回该换行符之前的所有字符;换句话说,它返回零个字符,一个空字符串。
如果您在调用next()、nextInt()
、nextDouble()
等之后,小心地使用额外的换行符来调用nextLine(),那么您可以毫无问题地混合调用,但在这种情况下,最简单的方法是始终使用nextLine()来处理用户的任何输入。
我正在研究一个程序,可以计算字符串中元音的数量。我有它的工作,但如果Y后面跟着一个辅音,我就无法计算Y。我的VOWEL_GROUP是“AEIOUAEOU”,它返回普通元音的数量,但不返回“y”。我让它看看charAt(I),看看它是否被元音组中的字符以外的其他字符所取代。谢谢你的帮助。以下是显示错误的输入和输出
如果用户输入字符串: 它应该输出 我知道这是一个相当简单的代码,但我有太多的想法和困惑。我需要一个来确保我有两个方法来处理numberofvoxels和capitalizeWord,并且都返回一个结果 我得到一个错误,我仍然试图找出大写后,我得到了计数元音的工作
问题内容: 我在做作业时遇到了这个问题(老实说,至少没有试图隐藏它),在解决该问题时遇到了问题。 给定以下声明:字符串短语=“ WazzUp?-谁在第一时间???-IDUNNO”;编写必要的代码以计算字符串中的元音数量,并将适当的消息打印到屏幕上。 这是我到目前为止的代码: 但是,当我运行它时,它只会产生一堆空白行。有人可以帮忙吗? 问题答案: 应该是。 给出的值,然后加1。就像您现在拥有的一样,
我正在编写一个程序,计算用户输入的句子中元音和辅音的数量。我下面的代码计算元音的数量,但它为辅音计数提供了奇怪的数字。例如,如果我输入“g”,我得到的辅音计数是10。
首先,请原谅我英语不好。这不是我的母语(这是我的问题之一,稍后你会看到原因)。 我正在Java中制作一个方法,建议计算字符串的元音。输入来自windows提示符,因为我分别使用javac和java命令编译和执行。 我已经写了一些代码来解决这个问题,但我无法计算带有重音符号的元音。例如。当我尝试“canción”时,它的输出只计算 2 个元音。 我正在使用扫描仪作为输入法。 我尝试比较两个字符串,因
输入20个字符串的数组。制作一个程序,打印出辅音多于元音的字符串,其中字母“r”至少重复3次。 我相信问题出在我的 if 循环中,但不知何故我不明白为什么它不能正常工作。它会打印我输入的每个字符串。 这是我写的代码: