这节代码,涉及StringTokenizer,是如何用的?import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.TextEvent;
import java.awt.event.TextListener;
import java.util.Arrays;
import java.util.StringTokenizer;class WindowTextArea extends Frame 
implements TextListener, ActionListener {
    private static final long serialVersionUID = -3434095178930651913L;
    TextArea text1, text2;
    Button buttonClear;    WindowTextArea() {
     setLayout(new FlowLayout());
     text1 = new TextArea(6, 15);
     text2 = new TextArea(6, 15);
     buttonClear = new Button("清空");
     add(text1);
     add(text2);
     add(buttonClear);
     text2.setEditable(false);
     text1.addTextListener(this);
     buttonClear.addActionListener(this);
        setBounds(100, 100, 350, 160);
        setVisible(true);
        validate();
    }    @Override
    public void actionPerformed(ActionEvent e) {
        text1.setText(null);
    } @Override
public void textValueChanged(TextEvent e) {
String s = text1.getText();
StringTokenizer fenxi = new StringTokenizer(s, " ,'\n'");
int n = fenxi.countTokens();
String a[] = new String[n];
for (int i=0; i<=n-1; i++) {
String temp = fenxi.nextToken();
a[i] = temp;
}
Arrays.sort(a); //按字典序从小到大排序
text2.setText(null);
for (int i=0; i<=n; i++) {
text2.append(a[i] + "\n");
}
}
}public class Example7_9 {
    public static void main(String args[]) {
        new WindowTextArea();
    }
}

解决方案 »

  1.   

    java2s.com 上有示例,去看看、照着来
      

  2.   

    StringTokenizer是很久以前的用法了,现在没必要使用这个类了
      

  3.   

    java.util
    类 StringTokenizerjava.lang.Object
      继承者 java.util.StringTokenizer所有已实现的接口:
        Enumeration<Object>public class StringTokenizer
    extends Object
    implements Enumeration<Object>string tokenizer 类允许应用程序将字符串分解为标记。tokenization 方法比 StreamTokenizer 类所使用的方法更简单。StringTokenizer 方法不区分标识符、数和带引号的字符串,它们也不识别并跳过注释。可以在创建时指定,也可以根据每个标记来指定分隔符(分隔标记的字符)集。StringTokenizer 的实例有两种行为方式,这取决于它在创建时使用的 returnDelims 标志的值是 true 还是 false:    如果标志为 false,则分隔符字符用来分隔标记。标记是连续字符(不是分隔符)的最大序列。
        如果标志为 true,则认为那些分隔符字符本身即为标记。因此标记要么是一个分隔符字符,要么是那些连续字符(不是分隔符)的最大序列。 StringTokenizer 对象在内部维护字符串中要被标记的当前位置。某些操作将此当前位置移至已处理的字符后。通过截取字符串的一个子串来返回标记,该字符串用于创建 StringTokenizer 对象。下面是一个使用 tokenizer 的实例。代码如下:         StringTokenizer st = new StringTokenizer("this is a test");
             while (st.hasMoreTokens()) {
                 System.out.println(st.nextToken());
             }
         输出以下字符串:         this
             is
             a
             test
         StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。下面的示例阐明了如何使用 String.split 方法将字符串分解为基本标记:         String[] result = "this is a test".split("\\s");
             for (int x=0; x<result.length; x++)
                 System.out.println(result[x]);
         输出以下字符串:         this
             is
             a
             test
         从以下版本开始:
        JDK1.0
    另请参见:
        StreamTokenizer构造方法摘要
    StringTokenizer(String str)
              为指定字符串构造一个 string tokenizer。
    StringTokenizer(String str, String delim)
              为指定字符串构造一个 string tokenizer。
    StringTokenizer(String str, String delim, boolean returnDelims)
              为指定字符串构造一个 string tokenizer。
     
    方法摘要
     int  countTokens()
              计算在生成异常之前可以调用此 tokenizer 的 nextToken 方法的次数。
     boolean  hasMoreElements()
              返回与 hasMoreTokens 方法相同的值。
     boolean  hasMoreTokens()
              测试此 tokenizer 的字符串中是否还有更多的可用标记。
     Object  nextElement()
              除了其声明返回值是 Object 而不是 String 之外,它返回与 nextToken 方法相同的值。
     String  nextToken()
              返回此 string tokenizer 的下一个标记。
     String  nextToken(String delim)
              返回此 string tokenizer 的字符串中的下一个标记。