2017-10-13 17 views
0
import java.util.*; 
public class Practice_7_4 
{ 
    public static void main(String[] args) 
    { 
     int counter = 0; 
     String statement; 
     int length; 
     char space = ' '; 
     String word = ""; 
     char letter; 
     char check; 
     int count = 0; 
     Scanner input = new Scanner(System.in); 

     System.out.print("Enter a string: "); 
     statement = input.nextLine(); 
     length = statement.length(); 
     System.out.print("Entered String: " + statement); 
     while(counter <= length-1) 
     { 
     letter = statement.charAt(counter); 
     for(int charcount = 0; charcount <= length-1; charcount++) 
     { 
      check = statement.charAt(charcount); 
      if(letter != ' ' && charcount < length-1) 
      { 
       if(Character.toLowerCase(letter) == Character.toLowerCase(check)) 
       { 
        count+=1; 
       } 
      } 
     } 
     if(letter != ' ') 
      System.out.printf("\nletter %c:\t %d", letter, count); 
     counter += 1 ; 
     count = 0; 
     } 
    } 
} 

Output of "I am tired" in the program: 
letter i: 2 
letter a: 1 
letter m: 1 
letter t: 1 
letter i: 2 
letter r: 1 
letter e: 1 
letter d: 0 

私の問題は、 2回、どのように私は0を生成する代わりに最後の文字をカウントするために自分のコードを取得できますか?これは私の唯一の質問ですが、詳細を追加するので、最小量に達するまで入力します。文字列を読み込んで各文字の数を表示するプログラムを作成しようとしていますが、動作しません。

+0

なぜ... ...&charcount

答えて

0

この目的でコレクションを使用できます。

public static void main(String[] args) { 
    int occurrence = 0; 
    String arr="I am tired"; 
    List<Character> nos =new ArrayList<>(); 
    for(int i=0;i<arr.length();i++){ 
     nos.add(Character.toLowerCase(arr.charAt(i))); 
    } 
    Set<Character> uniqueNos = new HashSet<>(nos); 
    for(char temp:uniqueNos) { 
     for(char tempList:nos) { 
      if(String.valueOf(temp).equalsIgnoreCase(String.valueOf(tempList))) { 
       occurrence++; 
      } 
     } 
     if(temp!=' ') 
     System.out.println(temp+ " Appears "+occurrence +" times"); 
     occurrence = 0; 
    } 
} 

ここでは、まずキャラクタの文字列を作成します。各文字をリストに格納します。

次に、list.hashsetからハッシュセットを作成します。一意のデータのみが含まれます。

ハッシュセットから1つの文字を選択し、一致する場合は増分カウンタをすべてリストすることと比較してください。

0

次のプログラムが作業を行います。私が作った

import java.util.*; 

public class Practice_7_4 { 

public static void main(String[] args) { 
    int counter = 0; 
    String statement; 
    int length; 
    char space = ' '; 
    String word = ""; 
    char letter; 
    char check; 
    int count = 0; 
    Scanner input = new Scanner(System.in); 

    System.out.print("Enter a string: "); 
    statement = input.nextLine(); 
    char c[] = statement.toCharArray(); 
    length = statement.length(); 
    System.out.print("Entered String: " + statement); 
    while (counter <= length - 1) { 
     letter = c[counter]; 
     for (int charcount = 0; charcount <= length - 1; charcount++) { 
      check = c[charcount]; 
      if (letter != ' ' && charcount <= length - 1) { 
       if (Character.toLowerCase(letter) == Character.toLowerCase(check)) { 
        //System.out.println(true); 
        count += 1; 
        c[charcount]=' '; 
       } 

      } 
     }//System.out.println(Arrays.asList(c).toString()); 
     if (letter != ' ') 
      System.out.printf("\nletter %c:\t %d", letter, count); 
     counter += 1; 
     count = 0; 
    } 
    System.out.println("hello"+statement); 
} 
} 

いくつかの変更:

  1. スペースですでに見た文字を置き換えることができるように、文字列の文字列を作りました。

  2. 検索される文字を空白( '')で置き換えて、見つけた場所ごとに置き換えてカウントを増やします。

関連する問題