Java 数一数单词中的元音
我需要找出一个单词中元音的数量。然而,当我比较单词中的字母是否为元音时 例如,我所做的就像下面的一样Java 数一数单词中的元音,java,regex,character,Java,Regex,Character,我需要找出一个单词中元音的数量。然而,当我比较单词中的字母是否为元音时 例如,我所做的就像下面的一样 if(word[i]='a'| | word[i]='e'| | | word[i]='i'| | | word[i]='u'…)//其余部分省略 if语句太长。有没有办法将它们与正则表达式或类似正则表达式的比较进行比较,并给出字符串中元音出现的次数 如果要查找所有元音 String line = "Ahis order was placed for QT3000! OK?"; String p
if(word[i]='a'| | word[i]='e'| | | word[i]='i'| | | word[i]='u'
…)//其余部分省略
if
语句太长。有没有办法将它们与正则表达式或类似正则表达式的比较进行比较,并给出字符串中元音出现的次数 如果要查找所有元音
String line = "Ahis order was placed for QT3000! OK?";
String pattern = "(?i)[aeiou]";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
while (m.find()) {
System.out.println(m.group(0) );
}
如果要查找它们出现的次数,可以使用replace
like
String line = "Ahis order was placed for QT3000! OK?";
String pattern = "(?i)[aeiou]";
System.out.println(line.replaceAll(pattern, "").length());
注意:-(?i)
是内联修饰符,表示后面的任何模式都不区分大小写方法1:
如果你想用正则表达式计算元音,你可以试试
int count = word.replaceAll("[^aeiouAEIOU]","").length();
方法2:
首先计算字长,然后使用此
word = word.replaceAll("[^aeiouAEIOU]","").length();
然后从原来的单词中减去。您将得到元音的计数。这里是另一个答案,尽管比另一个答案效率稍低:
import java.util.Scanner;
public class VowelCount {
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
System.out.println("Enter String");
String input=sc.nextLine();
String inputup=input.toUpperCase();
int vowel=0;
for(int i=0;i<=inputup.length()-1;i++) {
char ch=inputup.charAt(i);
if((ch=='A')||(ch=='E')||(ch=='I')||(ch=='O')||(ch=='U')) {
vowel++;
continue;
}
}
System.out.println("No. of Vowels="+vowel);
}
import java.util.Scanner;
公共类元音计数{
公共静态void main(字符串参数[]){
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入字符串”);
字符串输入=sc.nextLine();
字符串inputup=input.toUpperCase();
int元音=0;
对于(int i=0;i您实际希望replaceAll方法更改原始文本还是仅在替换的情况下提供,出现的次数将是该数字?@drJava如果要替换原始字符串,可以使用line=line.replaceAll((?i)[^aeiou],”)
不,我不想要。原文应该保持不变。你的答案是正确的,但我可以在5分钟内接受它作为正确答案:)Stackoverflow things。与rock的答案有什么不同/更好的地方?这看起来就像一个错误。