gpt4 book ai didi

java - 使用数组方法java计算和显示字符串中的元音

转载 作者:行者123 更新时间:2023-12-02 08:47:07 25 4
gpt4 key购买 nike

我在这里寻找解决方案已经有一段时间了,但我无法找到所需的解决方案,即我被要求做的解决方案......因此,我需要从用户那里获取一个字符串,并对字符串中的所有大写和小写元音进行计数和显示。这是所需的输出:

Enter a string:
IAMHERE
a : occured 0
e : occured 0
i : occured 0
o : occured 0
u : occured 0
A : occured 1
O : occured 0
U : occured 0
I : occured 1
E : occured 2

这是我到目前为止所做的:

import java.util.Scanner;

public class CountVowels {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a string:");
String input = sc.next();
char[] chars = createArray(input);
countLet(chars);
}

static char[] createArray(String str) {
char[] chars = new char[str.length()];
for (int i = 0; i < chars.length; i++) {
chars[i] = str.charAt(i);
}
return chars;
}

static void countLet(char[] chars) {
char[] vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'O', 'U', 'I', 'E'};
int numberOfVowels = 0;
for (int i = 0; i < chars.length; i++) {
if (chars[i] == vowels[i]) {
numberOfVowels++;
}
System.out.println(vowels[i] + " : occured " + numberOfVowels + " ");
}
}
}

我知道问题出在哪里---> countLet因为我连续比较所有字符与元音......例如字符的第一个字母是 'I' 但元音的第一个字母是 'a' ,很明显它们不相等,而且输出我的代码不比较“I”和“E”字母,因为输入小于元音。长度...

后面代码的输出:

Enter a string:
IAMHERE
a : occured 0
e : occured 0
i : occured 0
o : occured 0
u : occured 0
A : occured 0
O : occured 0

那我能做什么?!

最佳答案

当您比较chars[i]时出现问题至vowels[i] 。因为您正在增加 i该程序没有所需的输出。

例如,字符串:Hello :

H is checked against only 'a'

e is checked against only 'e'

l is checked against only 'i' etc.

这也意味着字符串的长度是否大于 vowels.length那么你会得到一个 IndexOutOfBounds 异常。

您需要检查每个字母是否为元音的代码:

for (char c : input) { // Loop through each character in the string
for (char v : vowels) { // Loop through each vowel
if (c == v) { // The letter is a vowel
numberOfVowels++;
break; // The letter cannot be another vowel too, so break out of the inner loop
}
}
}

然后您可以修改此并将元音更改为 Map<Character, Integer>为了跟踪每个元音出现的次数

关于java - 使用数组方法java计算和显示字符串中的元音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61009566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com