gpt4 book ai didi

java - 如何让这个程序计算用户输入单词中的元音?

转载 作者:行者123 更新时间:2023-12-02 12:02:28 24 4
gpt4 key购买 nike

我在显示输入的单词中的元音时遇到了一个小问题。我有元音= AEIOU。我想也许这就是问题所在,但我不确定,也不知道如何解决它。

这就是它给我的:

输入一个词:南极洲

以下是 ANTARTICA 中的元音:AEIOU

元音数量:4

流程已完成。

正如你所看到的,它计算了元音,我只是想让它们也显示出来。我该怎么做呢? (我是一个菜鸟编码员......)

import static java.lang.System.*;
import java.util.*;

public class Java2106{
public static void main(String[] args) {
new Solution();
}}


class Solution
{
String word;
int count;
String vowels;

Solution()
{
input();
output();
}

public void input()
{
Scanner scan = new Scanner(in);

out.print("Enter a word: ");
word = scan.nextLine();


}

public void output()
{
vowels = "AEIOU";
count = 0;

out.println();
out.print("Here are the vowels in " + word + ": " + vowels);


for (int x = 0; x < word.length(); x++)
{
String let = word.substring(x,x+1);

if (vowels.contains(let))
count++;
}

out.println("\nVowel count: " + count);

}
}

最佳答案

当您比较字母时,您必须将两个字母都小写或忽略大小写。我又添加了一种方法 java8(),它向您展示了如何使用 Java 8 lambda 函数解决此问题。

为了您自己的利益,我强烈建议您阅读基础 Java 并学习如何编写 Java 类,因为下面的类不是一个好的实现。对于像这样的简单程序来说,您的逻辑太复杂了,因此我强烈建议您回到基础知识。

import static java.lang.System.in;
import static java.lang.System.out;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Java2106 {
public static void main(String[] args) {
new Solution();
}
}

class Solution {
String word;
int count;
String vowels;

Solution() {
input();
output();
java8();
}

private void java8() {
Scanner scan = new Scanner(in);
out.print("Enter a word: ");
word = scan.nextLine();
List<Character> letters = convert(word.toLowerCase());
letters.removeIf(c -> (c.charValue() != 'a' && c.charValue() != 'e' && c.charValue() != 'i' && c.charValue() != 'o' && c.charValue() != 'u'));
System.out.println("Vowels in given word: " + letters.size());
scan.close();
}

private List<Character> convert(String word) {
List<Character> letters = new ArrayList<Character>();
for (Character c : word.toCharArray()) {
letters.add(c);
}
return letters;
}

public void input() {
Scanner scan = new Scanner(in);
out.print("Enter a word: ");
word = scan.nextLine();
}

public void output() {
vowels = "AEIOU";
count = 0;
out.println();
out.print("Here are the vowels in " + word + ": " + vowels);
for (int x = 0; x < word.length(); x++) {
String let = word.substring(x, x + 1);
if (vowels.toLowerCase().contains(let.toLowerCase()))
count++;
}

out.println("\nVowel count: " + count);

}
}

简单的实现之一:

import java.util.Scanner;

public class Java2106 {
public static void main(String[] args) {
int count = 0;
Scanner scan = new Scanner(System.in);
System.out.print("Enter a word: ");
String word = scan.nextLine();
for (char c : word.toLowerCase().toCharArray()) {
if (isVowel(c)) {
count++;
}
}
System.out.println("Total Vowels : " + count);
scan.close();
}

private static boolean isVowel(char c) {
return (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u');
}
}

关于java - 如何让这个程序计算用户输入单词中的元音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47148395/

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