2016-08-12 1 views
-3

このプログラムは、指定されたStringで使用可能な単語の数を表示するために書いています。 ここでは、occurenceofのロジックを、組み込みのメソッドを使用せずに文字列内の各単語に入力します。私は、文字列を入力し、メソッドを組み込むことなく各ユニークワードの出現を表示するJavaプログラムを望みます

import java.util.Scanner; 

public class Test80 
{ 

    public static void main(String args[]){ 
     Scanner in=new Scanner(System.in); 
     System.out.println("Enter your sentence:[Try to ignore space at end]"); 
     String s=in.nextLine(); 
     System.out.println("Size of the string is "+s.length()); 
     int res=count(s); 
     System.out.println("No of words in the given String --->>"+" "+s+" :"+"is"+" :"+res); 
    } 


    private static int count(String s) { 

     int count=0; 
     if(s.charAt(0)!=' ') 
     { 
      count++; 
     } 
     for(int i=0;i<s.length();i++) 
     { 
      if((s.charAt(i)==' ')){ 
       count++; 
      } 
     } 
     return count; 
    } 
} 

答えて

0

代わりに、文章中の「n」のスペースがあるならば、単語の数がなるというロジックを使用しているすべてを行うためのN + 1単に;

if elseを使用してプログラムを変更します。カウント方法で

は、あなたがそのタスクのため Mapを使用する必要がある方法で構築されたのあなたの定義に応じて、この

プライベート静的int型の数(のString){

int count=0; 

    for(i=0;i<s.length();i++) 
    { 
     if(s.charAt(i)==' ') count++; 
    } 

    return (count+1);//returning the number of words 
} 
0

を行います。

Map<String,Integer> = new HashMap<>(); 
int begin_pos = 0; 
for(int i = 0; i < s.length(); i++){ 
    if(s.charAt(i) == ' '){ 
     int count = map.containsKey(s.substring(begin_pos, i)) ? map.get(s.substring(begin_pos, i)) : 0; 
     map.put(s.substring(begin_pos, i), count + 1); 
     begin_pos = i+1; 
    } 
    else if(i == s.length() -1){ 
     int count = map.containsKey(s.substring(begin_pos)) ? map.get(s.substring(begin_pos)) : 0; 
     map.put(s.substring(begin_pos), count + 1); 
    } 
} 
+0

私はJavaの新しい学習者であるため、マップやハッシュテーブルを理解するために遠くまで行っていないので、私が持っているプロジェクトによれば、組み込みメソッドを使用せずにやる必要があります。 –

+0

あなたの心配に感謝します。 –

関連する問題