找了一个多小时,似乎找不到实现这一点的方法。我有一个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使用)作为单个标记。
您可以使用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