所以我正在写代码以计算编号。句子中的元音和辅音但是这两种情况的输出均为0。
我正在使用removeAll();
删除空格或制表符或逗号或句号等。我的代码找不到任何错误。
import java.util.*;
import java.lang.*;
public class VowelsConsonantsSentence
{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
System.out.print("Input The Sentence : ");
String in = sc.nextLine();
in = in.toLowerCase();
in = in.replaceAll("\\s+","");
in = in.replaceAll(".","");
in = in.replaceAll(",","");
int vCount=0, count=0;
for(int i=0;i<in.length();i++)
{
char x = in.charAt(i);
switch(x)
{
case 'a' :
case 'e' :
case 'i' :
case 'o' :
case 'u' : vCount++;
break;
default : count++;
}
}
System.out.println("\nNo. of vowels : "+vCount);
System.out.println("\nNo. of consonants : "+count);
}
}
变量count
和vCount
的值均为0。
答案 0 :(得分:2)
replaceAll
使用正则表达式作为输入,因此"."
删除所有字符。
您可以使用replaceAll
删除所有in = in.replaceAll("[^A-Za-z]+","");
,它应该可以工作。
答案 1 :(得分:0)
这是通过首先删除不是元音的所有内容并获取剩余字符串的长度来实现的。然后,它会将字母以外的所有内容删除,以进行字母计数。显然是consonantCount = letterCount - vowelCount
。
String s = "The quick brown fox jumps over the lazy dog.";
s = s.toLowerCase();
int vowelCount = s.replaceAll("[^aeiou]", "").length();
int letterCount = s.replaceAll("[^a-z]", "").length();
int consonantCount = letterCount - vowelCount;
System.out.printf("Vowels: %d\n", vowelCount);
System.out.printf("Consonants: %d\n", consonantCount);
输出:
Vowels: 11
Consonants: 24