2014-05-20 56 views
0

我的任務是向Jbutton添加一個事件,該事件將計算JTextArea中顯示的字的出現次數。代碼如下所示,但是這對每一個字都有效;JTextArea中的特定字數

private void btnCountActionPerformed(java.awt.event.ActionEvent evt) {           
    if(!(txtaInput.getText().trim().length()==0)){ 
     String a = String.valueOf(txtaInput.getText().split("\\s").length); 
     lbl2.setText("the word java has appeared " + a + " times in the text area"); 
     lbl2.setForeground(Color.blue); 
    }           
    else{ 
     lbl2.setForeground(Color.red); 
      lbl2.setText("no word to count "); 
    } 
} 

幫我找出如何執行字數爲特定的詞,如「傑夫」,當它在JTextArea.thanks

+0

如果我理解了您,您必須遍歷文本區域中的所有文本,並檢查您的單詞是否與文本區域中的「我」單詞相同。如果這是你增加你的計數器。 – wawek

回答

1

進入嘗試這樣,

String[] words=txtaInput.getText().toLowerCase().trim().split(" "); //Consider words separated by space 
    String StringToFind="yourString".toLowerCase(); 
    int count=0; 
    for(String word : words) 
    { 
     if(word.contains(StringToFind)){ 
      count++; 
     } 
    } 
    lbl2.setText("Count: "+ count); 
    lbl2.setForeground(Color.blue); 

我已嘗試此代碼

public class TestClass { 
public static void main(String[] args) { 
    String[] words="This is a paragraph and it's contain two same words so the count should be two".toLowerCase().split(" "); 
    String StringToFind="two".toLowerCase(); 
    int count=0; 
    for(String word : words) 
    { 
     if(word.contains(StringToFind)){ 
      count++; 
     } 
    } 
    System.out.println(count); 
} 
} 

我算上2,希望這會有所幫助。

+0

嘗試完成後,計數完美適用於字母計數,例如「String StringToFind =」a「.toLowerCase();」但對於字數統計的情況,無論該字的出現次數如何,響應都會計數爲零(0)。 – Ford

0

如果你想計算單詞的數量,確切地說是一個單詞,但不在任何單詞的中間,那麼你的工作太簡單了。 只需將您從JTextArea獲得的文本拆分,即可在文本中獲取單詞數組(通過TextArea輸入)。從該數組可以重複使用迴路上與陣列項目和循環增量內計數

這是它比較字。

如果你想計算出現的事件,這個詞可能被嵌入到另一個詞的內部,那麼你的工作就是一些艱難的事情。爲此,您需要知道正則表達式

+0

Ulaga給出了我描述的第一種情況的確切代碼。 如果您希望將解決方案作爲第二個解決方案,您必須掌握有關正則表達式的知識。 – Azeez