使用stringtokenizer返回字符串的其余部分

3 java stringtokenizer

看了一个多小时,似乎找不到实现这个的方法.我有一个stringtokenizer对象,它拆分了一个字符串(一个数学表达式).在达到某一点后,我希望能够在当前位置之后取出字符串剩余的内容(我想在递归时使用它)

如果我做

StringTokenizer sTokenizer = new StringTokenizer(expression);
//operations with some of the tokens here
System.out.println(sTokenizer.nextToken());
Run Code Online (Sandbox Code Playgroud)

它将以空格分隔.

我试过了

sTokenizer.nextToken(null)
Run Code Online (Sandbox Code Playgroud)

但这只是抛出一个空指针异常.

我知道我可以在参数中放入一些不太可能出现在表达式中的随机字符串,但这并不理想.

如果我用子串实现这个

expression.substring(currentposition)
Run Code Online (Sandbox Code Playgroud)

会工作,但我需要stringtokenizer.

简而言之,我正试图找出一种方法来检索字符串的剩余部分(由stringtokenizer使用)作为单个标记.

gon*_*nzo 7

你可以用sTokenizer.nextToken("").它接近您所寻找的.这会将其余部分String作为单个标记返回,包括分隔符.例:

public static void main(String[] args){
    String expression = "a b c d e";
    StringTokenizer sTokenizer  = new StringTokenizer(expression);
    System.out.println(sTokenizer.nextToken());
    System.out.println(sTokenizer.nextToken(""));
}
Run Code Online (Sandbox Code Playgroud)

输出:

a
 b c d e
Run Code Online (Sandbox Code Playgroud)