Skip to content

java.util.StirngTokenizer 示例代码 #3

@jamesfancy

Description

@jamesfancy

示例代码如下,代码说明请看注释:

/*
 * @(#) TestStringTokenizer.java
 * by James Fancy
 * on 2003-9-27
 */

import java.util.StringTokenizer;

/**
 * <code>TestStringTokenizer</code> 类给出了三个示例,
 * 演示了 StringTokenizer 类 的常见用法。
 *
 * @author James Fancy on 2003-9-27 9:12:34
 */
public final class TestStringTokenizer {

    public final static void main(String[] args) {
        TestStringTokenizer test = new TestStringTokenizer();
        test.test1();
        test.test2();
        test.test3();
    }

    String source = "abcdefg;hijklmn|opqrst,uvw.xyz";

    String source3 = "The file "
    Good Java Code.txt " is in dir" + " "
    My Documents " of volume "
    Doc Volume "";

    String delim = ";,.|"; // 包含分号、逗号、句点、竖址分隔符

    String delim2 = " "
    "; // 包含空格、引号

    String delim3 = "
    ""; // 仅包含引号

    /**
     * 演示 StringTokenizer 最常用的用法,
     * 使用 StringTokenizer(String, String) 构造 Tokenizer。
     */
    public void test1() {
        this.printSeparater("TEST1");
        StringTokenizer tokenizer;
        tokenizer = new StringTokenizer(source, delim);

        while (tokenizer.hasMoreTokens()) {
            System.out.println(tokenizer.nextToken());
        }
    }

    /**
     * 演示 StringTokenizer 的 nextToken(String) 用法
     */
    public void test2() {
        this.printSeparater("TEST2");
        StringTokenizer tokenizer = new StringTokenizer(source);
        while (tokenizer.hasMoreTokens()) {
            System.out.println(tokenizer.nextToken(delim));
        }
    }

    /**
     * 一个较综合的示例,它拆分一句话,将每个单词拆分出来,
     * 其中,被双引号包含 的若干单词被处理为一个单词输出。
     */
    public void test3() {
        this.printSeparater("TEST3");
        String delim = delim2;
        String word;
        boolean begin = false;

        StringTokenizer tokenizer = new StringTokenizer(source3, delim, true);
        while (tokenizer.hasMoreTokens()) {
            word = tokenizer.nextToken(delim);
            if (word.equals("")) {
                if (begin) {
                    delim = delim2;
                    begin = false;
                } else {
                    delim = delim3;
                    begin = true;
                }
            } else if (!word.equals(" ")) {
                System.out.println(word);
            }
        }
    }

    private void printSeparater(String title) {
        System.out.println("--------- " + title + " ---------");
    }

}

运行结果如下,看看是不是你根据代码猜想的一样:

--------- TEST1 ---------
abcdefg
hijklmn
opqrst
uvw
xyz
--------- TEST2 ---------
abcdefg
hijklmn
opqrst
uvw
xyz
--------- TEST3 ---------
The
file
Good Java Code.txt
is
in
dir
My Documents
of
volume
Doc Volume

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions