如何计算字符串中的元音,包括带有重音符号的元音?
How to count vowels in a String including which have accent marks?
首先,请原谅我的英语不好。这不是我的母语(这是我的问题之一,稍后你会明白为什么)。
我正在Java中制作一个方法,建议计算字符串的元音。输入来自 windows 提示符,因为我分别使用 javac 和 java 命令进行编译和执行。
我已经写了几行代码来解决这个练习,但我无法计算带有重音符号的元音。例如。当我尝试 "canción" 时,它的输出只计算 2 个元音。
public static int countVowels(String text){
int answer = 0;
String test = "AEIOUaeiou";
for (int i = 0; i < text.length(); i++)
for (int j = 0; j < test.length(); j++)
if (text.charAt(i) == test.charAt(j)) {
answer++;
break;
}
return answer;
}
public static void form() {
Scanner in = new Scanner(System.in);
System.out.println("This program counts the number of vowels.");
int answer = 0;
String text = "";
while (!text.equals("-1")) {
System.out.print("Enter a line of text (-1 to exit): ");
text = in.nextLine();
answer = Character.countVowels(text);
System.out.println("Number of vowels: " + answer);
}
System.out.println("Closing the program...");
}
我正在使用扫描仪作为输入法。
我尝试比较 2 个字符串,因为我认为使用 if(text.charAt(i) == 'A')
很无聊(也许我错了)。
我真的不知道该怎么办。我试过使用 Ascii 值 (193 = Á),我试过在测试字符串 String test = "AEIOUaeiouÁÉÍÓÚáéíóú";
.
中只写带重音符号的元音
没有任何效果。我会非常感谢能帮助我的人。
PS,我不允许使用数组。
计算 "vowels" 的最简单方法是这样一行:
int vowelCount = str.replaceAll("[^AEIOUaeiouÁÉÍÓÚáéíóú]", "").length();
此查找使用正则表达式并删除(替换为空白)所有不是列出的字符之一的字符(通过否定字符 class)。
首先,请原谅我的英语不好。这不是我的母语(这是我的问题之一,稍后你会明白为什么)。
我正在Java中制作一个方法,建议计算字符串的元音。输入来自 windows 提示符,因为我分别使用 javac 和 java 命令进行编译和执行。
我已经写了几行代码来解决这个练习,但我无法计算带有重音符号的元音。例如。当我尝试 "canción" 时,它的输出只计算 2 个元音。
public static int countVowels(String text){
int answer = 0;
String test = "AEIOUaeiou";
for (int i = 0; i < text.length(); i++)
for (int j = 0; j < test.length(); j++)
if (text.charAt(i) == test.charAt(j)) {
answer++;
break;
}
return answer;
}
public static void form() {
Scanner in = new Scanner(System.in);
System.out.println("This program counts the number of vowels.");
int answer = 0;
String text = "";
while (!text.equals("-1")) {
System.out.print("Enter a line of text (-1 to exit): ");
text = in.nextLine();
answer = Character.countVowels(text);
System.out.println("Number of vowels: " + answer);
}
System.out.println("Closing the program...");
}
我正在使用扫描仪作为输入法。
我尝试比较 2 个字符串,因为我认为使用 if(text.charAt(i) == 'A')
很无聊(也许我错了)。
我真的不知道该怎么办。我试过使用 Ascii 值 (193 = Á),我试过在测试字符串 String test = "AEIOUaeiouÁÉÍÓÚáéíóú";
.
没有任何效果。我会非常感谢能帮助我的人。
PS,我不允许使用数组。
计算 "vowels" 的最简单方法是这样一行:
int vowelCount = str.replaceAll("[^AEIOUaeiouÁÉÍÓÚáéíóú]", "").length();
此查找使用正则表达式并删除(替换为空白)所有不是列出的字符之一的字符(通过否定字符 class)。