资源描述
实验一 简单的单词识别程序一、 实验内容设计一个识别单词的程序,从文本文件中读取字符串,将字符串中的字符根据空格逐个识别为单词,并比较单词是否为zero,one,two,three,four,five,six,seven,eight,nine,若是则输出该单词对应的阿拉伯数字。要求用JAVA语言、图形界面方式编程。(可参考实验指导书P110至P113)举例:若文本文件中的字符串为one at are three six 234 eight 则输出为1368二、程序代码DistinguishWord.javapackage zlf;import java.io.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class DistinguishWord extends JAppletprivate JFileChooser jfc = new JFileChooser(new File(.);private JTextArea jta1 = new JTextArea();private JTextArea jta2 = new JTextArea();private JButton jlb1 = new JButton(字符串的内容为:);private JButton jlb2 = new JButton(其中英文对应的阿拉伯数字为:);private JLabel fileName = new JLabel( Filename );private JTextField jtf = new JTextField(30);private JButton brower = new JButton(Brower);public DistinguishWord()JPanel p1 = new JPanel();p1.setLayout(new BorderLayout();p1.setBorder(BorderFactory.createEmptyBorder(5,5,5,10);p1.add(jlb1,BorderLayout.NORTH);p1.add(new JScrollPane(jta1), BorderLayout.CENTER);add(p1,BorderLayout.CENTER);JPanel p2 = new JPanel();p2.setLayout(new BorderLayout();p2.setBorder(BorderFactory.createEmptyBorder(5,5,5,10);p2.add(jlb2,BorderLayout.NORTH);p2.add(new JScrollPane(jta2), BorderLayout.CENTER);add(p2,BorderLayout.EAST);JPanel p3 = new JPanel();p3.setLayout(new BorderLayout();p3.add(fileName,BorderLayout.WEST);p3.add(jtf);p3.add(brower, BorderLayout.EAST);add(p3,BorderLayout.SOUTH);jtf.setText(C:/1.txt);brower.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)open(););jtf.addKeyListener(new KeyAdapter() public void keyPressed(KeyEvent e) if(e.getKeyChar()=KeyEvent.VK_ENTER ) /按回车键执行相应操作; String file = jtf.getText(); try BufferedInputStream in = new BufferedInputStream(new FileInputStream(file); byte b = new bytein.available(); in.read(b,0,b.length); jta1.append(new String(b,0,b.length); in.close(); catch (IOException e1) jta1.setText(Error opening ); );jlb2.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)String s = jta1.getText();jta2.setText(translateFigure(s););private String translateFigure(String string)String english = zero,one,two,three,four,five,six,seven,eight,nine;String s = string;String str = ;String t = ;int n = 0;char ch = s.toCharArray(); for(int i = 0; i s.length(); i+) if(chi = |chi = .|chi = ,) t = s.substring(n, i); n = i+1; for(int j = 0; j 10; j+) if(t.equals(englishj) str = str + j; return str;private void open()if(jfc.showOpenDialog(this) = JFileChooser.APPROVE_OPTION)open(jfc.getSelectedFile();private void open(File file)tryBufferedInputStream in = new BufferedInputStream(new FileInputStream(file);byte b = new bytein.available();in.read(b,0,b.length);jta1.append(new String(b,0,b.length);in.close();jtf.setText(file.getName();catch(IOException ex)jtf.setText(Error opening + file.getName();1. txtone at are three six 234 eight 三、实验结果截图:简单说明:字符串内容框内可输入内容,点击“其中英文对应的阿拉伯数字为:”按钮可得出结果,或者在Filename后输入文件路径与文件名后回车,字符串内容框会显示文本文件内容,此时再点击“其中英文对应的阿拉伯数字为:”按钮可得出结果,或者在“Brower”按钮查找文件显示在字符串内容框内,再点击“其中英文对应的阿拉伯数字为:”按钮可得出结果。(PS:1.输入的字符串最后需要加个句号/逗号或者空个格,否则最后一个单词无法识别。2.1.txt存放在C盘,默认情况下Filename显示“C:/1.txt”)
展开阅读全文