编写一个GUI程序,实现单词分析功能。要求:
(1)获取用户指定的英文文本内容(可以从界面上的TextArea获得,也可以让用户从磁盘选择一个文件);
(2)分析该文本,在一个TextArea内输出所有出现过的单词,但不允许重复,每个单词后面要标记出现的次数。
如:输入 I have a Book,you have a book.输出:I(1),have(2),a(2),book(2),you(1)

解决方案 »

  1.   

    这是我自己以前作的个程序,你可以借鉴一下:
    package applet;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    /**
     *
     * @author longer
     */
    public class PolyJApplet extends JApplet
    {
        /** Creates a new instance of PolyJApplet */
        JTextField input;
        double a,b,c,d,x1,x2,re,im;
        public void init()
        {
            JLabel prompt=new JLabel("Enter three numbers:");
            input=new JTextField(10);
            input.setEditable(true);
            getContentPane().setLayout(new FlowLayout());
            getContentPane().add(prompt);
            getContentPane().add(input);
            input.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    Graphics g=getGraphics();
                    String s=input.getText();
                    String[] s1=s.split(" ");
                    a=Double.parseDouble(s1[0]);
                    b=Double.parseDouble(s1[1]);
                    c=Double.parseDouble(s1[2]);
                    if(a==0)
                        System.exit(0);
                    else
                    {
                        update(g);
                        d=b*b-4*a*c;
                        char ch=d>0?'a':d==0?'b':'c';
                        switch(ch)
                        {
                            case 'a':
                                 x1=(-b+Math.sqrt(d)/(2*a));
                                 x2=(-b-Math.sqrt(d)/(2*a));
                                 g.drawString("x1="+x1,150,60);
                                 g.drawString("x2="+x2,150,90);
                                 break;
                            case 'b':
                                g.drawString("x1=x2="+(-b/(2*a)),150,60);
                                break;
                            case 'c':
                                re=(-b/(2*a));
                                im=(Math.sqrt(-d/(2*a)));
                                g.drawString("re="+re,150,60);
                                g.drawString("im="+im,150,90);
                                break;
                        }
                    }
                }
            });
        }
        
    }
      

  2.   

    其中 String[] s1=s.split(" ");
    中的split(" ")是当出现空格是就分割!
      

  3.   

    用java做这个程序,高效中的初学者有一定的难度,上边的程序也不能运行!~