Scanner Class用于创建输入文件的标记

时间:2013-01-14 17:27:01

标签: java java.util.scanner stringtokenizer

我在java中编写了以下代码来打开另一个.java文件并创建令牌(使用扫描仪类)

import java.io.FileReader;
import java.util.Scanner;

public class scanner1 {
    public static void main(String[] arg) throws Exception
    {
        FileReader fin = new FileReader("mysourcefile.java");
        Scanner scan=new Scanner(fin);
        scan.useDelimiter(" ");   // the delimiter pattern required
        while(scan.hasNext()) {
            System.out.println(scan.next());
        }
    }
}

我的任务是创建完整Java文件的标记,并且分隔符也应被视为标记。

那么在scan.useDelimiter("")中使用的分隔符模式应该是什么?

更新:

使用stringtokenizer完成上述任务。但我不知道为.java文件创建令牌的分隔符的确切模式。我可以回答一下在给定情况下使用的分隔符模式吗?

import java.util.*;
public class sstring2
{
    public static void main(String[] args)
    {
        String s = "a=(b+c); String st='hello! my dear';";
        StringTokenizer st = new StringTokenizer(s, "[ =+';().*{}[],!@#$%^&/]", true);
        while(st.hasMoreTokens()){
            System.out.println(st.nextToken());
        }
    }
}

此代码给出了正确的结果。

2 个答案:

答案 0 :(得分:1)

它可能是您要终止输入的任何字符。

答案 1 :(得分:1)

看看java.lang.instrument packagae。它提供了一些很好的API来转换已经加载的类。重新转换允许像您的情况一样更改方法体。这是link