看了一个多小时,似乎找不到实现这个的方法。 我有一个stringtokenizer对象,它拆分了一个字符串(一个数学表达式)。在达到某一点后,我希望能够在当前位置之后取出字符串剩余的内容(我想以递归方式使用它)
如果我这样做
StringTokenizer sTokenizer = new StringTokenizer(expression);
//operations with some of the tokens here
System.out.println(sTokenizer.nextToken());
它将以空格分隔。
我试过
sTokenizer.nextToken(null)
但这只会引发空指针异常。
我知道我可以在参数中加入一些不太可能出现在表达式中的随机字符串,但这并不理想。
如果我用子串实现这个
expression.substring(currentposition)
会起作用,但我需要stringtokenizer。
简而言之,我试图找出一种方法来检索字符串的剩余部分(由stringtokenizer使用)作为单个标记。
答案 0 :(得分: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(""));
}
输出:
a
b c d e