該程序支持統計每個單詞在.txt文件中出現的次數 我處於正確的軌道上,因爲此程序顯示文件中的每個單詞在文本區域,但我需要它不重複單詞並增加計數器。我是在正確的軌道下爲每個單詞:單詞聲明?我知道我在這個陳述中只需要更多的邏輯,但我不知道如何實現它。我應該補充一點,我正在使用orderedlinkedlists將所有單詞按字母順序放在文本區域中,以便它們或按照彼此相鄰的順序排列。計算單詞在txt文件中出現的次數Java
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.util.Scanner;
public class Oct29 extends JPanel
{
private OrderedList<String> words;
private String filename;
private int width = 800;
private int height = 600;
private TextArea textarea;
public Oct29()
{
Scanner scan;
textarea = new TextArea("",0,0,TextArea.SCROLLBARS_VERTICAL_ONLY);
textarea.setFont(new Font("Helvetica",Font.PLAIN,24));
textarea.setPreferredSize(new Dimension(width,height));
setPreferredSize(new Dimension(width,height));
add(textarea);
JFileChooser chooser = new JFileChooser("../Text");
int returnvalue = chooser.showOpenDialog(null);
if(returnvalue == JFileChooser.APPROVE_OPTION)
{
try
{
File file = chooser.getSelectedFile();
filename = file.getName();
System.err.println(filename);
scan = new Scanner(file);
}
catch (IOException e)
{
System.err.println("IO EXCEPTION");
return;
}
}
else
{
return;
}
words = new OrderedLinkedList<String>();
while(scan.hasNext())
{
String token = scan.next().toLowerCase();
token = token.replace(",","").replace(".","");
words.add(token);
}
scan.close();
textarea.append(" "+filename+" has wordcount: "+words.size()+
"\n-------------------------\n\n");
for(String word : words)
{
for(int i=0;i<words.size(); i++)
{
int x =0; // This does not work but I'm trying to find if I'm on the right track
if(x < words.size())
textarea.append(word+"\n"); // THIS BY ITESELF WITHOUT THE INNER FOR LOOP WORKS FINE FOR DISPLAYING THE WORDS IN A TEXT AREA.
x++;
}
}
}
public static void main(String[] arg)
{
JFrame frame = new JFrame("Oct 29");
frame.getContentPane().add(new Oct29());
frame.pack();
frame.setVisible(true);
}
}
之後「單詞」的內容是什麼?爲什麼我問的是,你是否進入for循環?調試它?在某個地方放置一個斷點,然後逐步查看最終結果。 – mattias 2014-11-10 17:08:18