Java 如何计算字符串中的元音,包括有重音符号的元音?
首先,请原谅我英语不好。这不是我的母语(这是我的问题之一,你稍后会看到原因) 我正在用Java制作一个方法,它被提议计算字符串的元音。输入来自windows提示符,因为我分别使用javac和java命令编译和执行 我已经写了几行代码来解决这个问题,但是我不能计算有重音符号的元音。当我尝试“canción”时,它的输出只包含2个元音Java 如何计算字符串中的元音,包括有重音符号的元音?,java,compare,character,ascii,diacritics,Java,Compare,Character,Ascii,Diacritics,首先,请原谅我英语不好。这不是我的母语(这是我的问题之一,你稍后会看到原因) 我正在用Java制作一个方法,它被提议计算字符串的元音。输入来自windows提示符,因为我分别使用javac和java命令编译和执行 我已经写了几行代码来解决这个问题,但是我不能计算有重音符号的元音。当我尝试“canción”时,它的输出只包含2个元音 public static int countVowels(String text){ int answer = 0; String test = "
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...");
}
public静态整数元音(字符串文本){
int-answer=0;
字符串测试=“AEIOUaeiou”;
对于(int i=0;i
我用扫描仪作为输入法
我试着比较两个字符串,因为我认为使用if(text.charAt(I)='A')
很无聊(也许我错了)
真的,我不知道该怎么办。我试过使用Ascii值(193=Á),我试过只在测试字符串String test=“AEIOUaeiouÁ×Úáíóú”中用重音符号写去元音代码>
什么都不管用。我将非常感谢能帮助我的人。
PS,我不允许使用数组。计算“元音”的最简单方法是一行:
int vowelCount = str.replaceAll("[^AEIOUaeiouÁÉÍÓÚáéíóú]", "").length();
此查找使用正则表达式并删除(替换为空白)所有未列出的字符(通过负字符类)。我不会调用您的类character
,因为该名称与java.lang.character
冲突。一般来说,不要使用java.lang
包中存在的类名,因为这会导致很多混淆,因为它会自动导入到每个java源文件中。谢谢你的建议,我将编辑.Hmm。据我所知,我们不能计算重音元音,除非我们把它们也包括在if子句中。这将意味着识别所有可能的重音字符,即元音,并在每次遇到元音时增加一个计数器。