2013-02-18 84 views
-2

我正在學習數組,我想讓一個程序計算單詞。鑑於:String myWords = {"soon; hi; also; soon; job; also"}; ,我必須創建一個方法,如countWrods(myWords); 打印結果應該是字母印刷的字母順序,唯一字數和總字數。 這裏是我的代碼:如何計算java中的字符串數組中的單詞?

public class Words { 
    public static void main(String[] args){  
     String[] myWords = {"soon; hi; also; soon; job; mother; job; also; soon; later"}; 
     Words myW= new Words(); 
     myW.countWords(); 
     System.out.println("\tWords \tFreq"); 
    } 
    public static String[] countWords(myWords){ 
     for (int i=0; i<myWords.length; i++){ 
     String temp = myWords[i]; 
     //System.out.println(temp + " "); 
     for(int j=i+1; j<myWords.length; j++){ 
     String temp2= myWords[j]; 

      System.out.println("No. of unique words: "); 
     } 
     } 
    } 
} 

接下來我應該做什麼?

+4

您的字符串數組只包含一個元素。只是說。 (可能是一個字符串) – keyser 2013-02-18 12:19:22

+1

你實際上是在試着做String [] myWords = {「soon」,「hi」,「also」,「soon」,「job」,「mother」,「job」,「also 「,」很快「,」稍後「};' – jlordo 2013-02-18 12:21:05

+0

請參閱[那](http://stackoverflow.com/questions/how-to-ask)問之前,我認爲你不符合第一,第三和第四點。 – 2013-07-02 16:16:03

回答

0

我假設你想要計算字符串中的單詞。

字符串"soon hi also soon job mother job also soon later"

public class Words { 

Map<String , Integer> dictionary=new HashMap<String,Integer>(); 

public static void main(String[] args) { 
    String myWords = "soon hi also soon job mother job also soon later"; 
    Words myW = new Words(); 
    String[] array=myWords.split("\\s+"); 
    myW.countWords(array); 
    System.out.println(myW.dictionary); 
} 

private void countWords(String[] myWords) { 

    for(String s:myWords){ 

     if(dictionary.containsKey(s)) 
      dictionary.put(s, dictionary.get(s)+1); 
     else 
      dictionary.put(s, 1); 
    } 
} 
} 

O/P : {mother=1, later=1, job=2, hi=1, also=2, soon=3}

0

首先,你需要分割你的String,想必對 「;」 - 然後你可以把它改成TreeSet來對它進行排序,然後讓這些單詞不起作用。添加一個計數器來計算總詞數。你也可以使用一個TreeMap保持每個單詞的計數,覆蓋地圖上的put方法來聚合,你去...

final String myString = {"soon; hi; also; soon; job; mother; job; also; soon; later"}; 
final String[] myStrings = myString.split(";"); 
final Map<String, Integer> myStringMap = new TreeMap<>(){ 
@override 
public String put(final String key, final Integer value) { 
    if(contains(key)) { 
    return put(key, get(key) + 1); 
    } else { 
    return put(key, 1); 
    } 
} 
}; 
for(final String string : myStrings) { 
    myStringMap.put(string.trim(), 1); 
} 

現在myStringMap.size()是唯一字的數量,myStringMap.keys()是按字母順序排序所有unquie話Set,如果你想總,你只需要添加了值:

int totalWords = 0; 
for(final Integer count : myStringMap.values()) { 
    totalWorks += count; 
} 
+0

謝謝大家,我正在爲此努力,我會讓你知道進展情況。 – user1835208 2013-02-18 16:17:53

1
import java.io.*; 
import java.util.*; 

public class Count_Words_Scan 
{ 
    void main()throws IOException 
    { 
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 

     System.out.println("ENTER A STRING "); 
     String str = br.readLine(); 
     str= str.toLowerCase(); 
     int c=0; 
     Scanner sc = new Scanner(str); 
     while(sc.hasNext()) 
     { 
      sc.next(); 
      c++; 
     } 
     System.out.println("NO.OF WORDS = "+c); 
    } 
} 

輸入:字計數器
輸出:節數字= 3

相關問題