Java 如何让这个程序计算用户输入单词中的元音?
在我输入的单词中显示元音时,我有一个小问题。我有元音=AEIOU。我在想也许这就是问题所在,但我不确定,也不知道如何解决 这是它给我的: 输入一个单词:ANTARTICA 这是ANTARTICA的元音:AEIOU 元音数:4 进程已完成 正如你所看到的,它计算了元音,我只想让它们也显示出来。我该怎么做?我是一名noob编码员Java 如何让这个程序计算用户输入单词中的元音?,java,string,for-loop,count,Java,String,For Loop,Count,在我输入的单词中显示元音时,我有一个小问题。我有元音=AEIOU。我在想也许这就是问题所在,但我不确定,也不知道如何解决 这是它给我的: 输入一个单词:ANTARTICA 这是ANTARTICA的元音:AEIOU 元音数:4 进程已完成 正如你所看到的,它计算了元音,我只想让它们也显示出来。我该怎么做?我是一名noob编码员 import static java.lang.System.*; import java.util.*; public class Java2106{ publ
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,它向您展示了如何使用java8lambda函数解决这个问题 我强烈建议您为了自己的利益阅读基本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);
}
}
有很多方法可以做到这一点 可以为元音创建如下数组:
char[] vowels = {'a','e','i','o','u'};
然后做一个简单的for循环,遍历字符串单词的每个字母:
int count = 0;
String vowelsInWord = "";
for(int i=0; i<word.length; i++){
for(int j=0; j<vowels.length; j++){
if(word.charAt(i).toLowerCase() == vowels[j]){
vowelsInWord += word.charAt(i).toLowerCase();
count++;
}
}
}
System.out.println("Vowels in word: " + vowelsInWord);
System.out.println("Vowel Count: " + count);
如果希望显示与文本中的元音完全相同的元音,则应该有一个附加变量来存储元音。例如某种列表。然后每次你找到一个元音,就把它放到这个列表中,最后打印出来。
int count = 0;
String vowelsInWord = "";
for(int i=0; i<word.length; i++){
for(int j=0; j<vowels.length; j++){
if(word.charAt(i).toLowerCase() == vowels[j]){
vowelsInWord += word.charAt(i).toLowerCase();
count++;
}
}
}
System.out.println("Vowels in word: " + vowelsInWord);
System.out.println("Vowel Count: " + count);