2017-11-07 12 views
0

私が入力した単語に母音を表示するのに少し問題があります。私は母音= AEIOUを持っています。私はおそらくそれが問題だと思っていたが、わからないし、それを修正する方法がわからない。ここでこのプログラムを使って、ユーザーが入力した単語の母音を数える方法はありますか?

は、それは私を与えるものです:

は、単語を入力します。ここでは南極

は、南極での母音は:AEIOU

母音回数:完成4

プロセス。

あなたが見ることができるように、それは母音を数えて、私はそれらも表示させたいと思っています。どうすればいい? (私はnoobのコーダよ....)

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); 

    } 
} 
+1

あなたのテキストで見つかった母音とまったく同じ母音を母音を保存するための追加の変数が必要です。例えば ​​'List'のようなものです。その後、母音を見つけるたびにこのリストにプッシュし、最終的にそれを印刷します。 –

答えて

1

あなたは小文字、またはその両方の文字ケースを無視する必要が手紙を比較します。もう1つのメソッドjava8()を追加しました。これは、Java 8ラムダ関数を使用してこれを解決する方法を示しています。

基本的な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'); 
    } 
} 
0

これを行う方法の負荷があります。

あなたはこのような母音の配列を持つことができます:

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); 
関連する問題