View Full Version : โปรแกรมนับจำนวนคำจาก file (Word count)
asylu3
12-08-2003, 01:40 PM
หมายเหตุสังเกตุบรรทัดที่ระบุว่า D://java_exam/test.txt ตรงนี้ให้เปลี่ยนตามตำแหน่ง file ของท่านเอง
อธิบายโค้ด
-มีการใช้ throws IOException เพราะต้องการลดความยุ่งยากของการใช้ try - catch
-countln คือนับคำตัวสุดท้ายของแต่ละบรรทัด
-count คือนับคำทั้งหมดแต่ละบรรทัดไม่รวมคำสุดท้าย
โปรแกรมสามารถนับคำที่เว้นช่องว่างมากว่า 1 ช่องได้ทั้งด้านหน้าและด้านหลัง
import java.io.*;
class WordCount
{
public static void main(String args[]) throws IOException
{
int countln=0,count=0;
String out;
FileInputStream fstream = new
FileInputStream("D://java_exam/test.txt");
DataInputStream in =new DataInputStream(fstream);
while (in.available() !=0){
out=in.readLine();
char test[]=out.toCharArray();
System.out.println (out);
for(int c=0;c<test.length;c++){
if(c<test.length-1 ){
if( test[c]!=' ' && test[c+1]==' ' ){
count++;
}
}
}
countln++;
}
in.close();
System.out.println ("Total Word="+(count+ countln));
}
}
asylu3
12-08-2003, 04:25 PM
version 2
import java.io.*;
import java.util.*;
public class Other_w_count {
public static void main (String[] args) throws IOException {
int count=0;
String out;
FileInputStream fstream = new FileInputStream("D://java_exam/test.txt");
DataInputStream in =new DataInputStream(fstream);
while (in.available() !=0){
out=in.readLine();
System.out.println(out);
StringTokenizer st = new StringTokenizer(out, " ", false);
while (st.hasMoreTokens()){
count++;
st.nextToken();
}
}
System.out.println("Total word="+(count+1));
}
}
Crovax
12-08-2003, 04:32 PM
อธิบายภาพหน่อยดิว่า
โปรแกรมที่ว่าเป็นโปรแกรมที่ไม่ได้เรียกไฟล์จากที่อื่นใช่เป่า
ถ้าใช่
แสดงว่าโปรแกรมที่ต้องการจะต้องอ่าน input จากคำสั่งของ User เพราะฉะนั้นจะต้อง count จำนวนคำที่ user input เข้ามาใช่ป่าว
ยิ่งอ่านยิ่ง งง อะ
แบบว่าไม่เข้าใจ
??? ??? ???
asylu3
14-08-2003, 09:07 PM
version 3 มี GUI
http://seri.kmutt.ac.th/cs02/citec/forum3/downloadfile.php?FileID=8
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Wcount2 extends JFrame{
private JButton open;
private JButton cal;
private JLabel result;
private JTextArea showtext;
private JPanel bpanel;
static int count;
File testfilename;
public Wcount2()
{
super("Word Calculation");
open=new JButton("Open File");
result=new JLabel("TOTAL WORD= ");
cal=new JButton("Calculate");
showtext=new JTextArea(100,100);
Container c= getContentPane();
c.setLayout(new BorderLayout());
bpanel=new JPanel();
bpanel.add(open);
bpanel.add(cal);
bpanel.add(result);
//c.add(open,BorderLayout.NORTH);
// c.add(cal,BorderLayout.AFTER_LINE_END);
// c.add(result,BorderLayout.CENTER);
c.add(showtext,BorderLayout.CENTER);
c.add(bpanel,BorderLayout.SOUTH);
cal.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event) {
showOut();
}
});
open.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event) {
openFile();
}
});
setSize(400,200);
show();
}
void showOut(){
result.setText("TOTAL WORD= "+Integer.toString(count));
}
void openFile(){
JFileChooser file=new JFileChooser();
file.setFileSelectionMode(JFileChooser.FILES_ONLY);
int result=file.showOpenDialog(this);
if (result==JFileChooser.CANCEL_OPTION)return;
testfilename=file.getSelectedFile();
System.out.println();
try {
calIt(testfilename);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
void calIt(File in_file) throws FileNotFoundException {
count=0;//reset
showtext.setText("");
String out;
FileInputStream fstream = null;
fstream = new FileInputStream(in_file);
DataInputStream some =new DataInputStream(fstream);
System.out.println("Original Message:n");
try {
while (some.available() !=0){
out=some.readLine();
showtext.append(out+"n");
//System.out.println(out);
StringTokenizer st = new StringTokenizer(out, " ", false);
while (st.hasMoreTokens()){
count++;
st.nextToken();
}
}
fstream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//System.out.println("In calIt count:"+count);
}
public static void main (String[] args) {
Wcount2 obj=new Wcount2();
}
}
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions Inc. All rights reserved.