user5270206
user5270206

Reputation:

Returning the rest of the string with stringtokenizer

Looked for over an hour and cannot seem to find a way to implement this. I have a stringtokenizer object that is breaking apart a string(a mathematical expression). After reaching a certain point I want to be able to just take what is left of the string after the current position(I want to then use it recursively)

If I do

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

it will delimit by spaces.

I tried

sTokenizer.nextToken(null)

but that just throws a null pointer exception.

I know I could just put some random string in the parameter that is unlikely to show up in the expression, but that isn't ideal.

If I were implementing this with substrings

expression.substring(currentposition)

would work, but I need stringtokenizer.

In short, I'm trying to figure out a way to retrieve the remainder of a string(that is being used by stringtokenizer) as a single token.

Upvotes: 4

Views: 2075

Answers (1)

gonzo
gonzo

Reputation: 2121

You can use sTokenizer.nextToken(""). It is close to what you are looking for. This returns the rest of the String as a single token including the delimiter. Example:

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(""));
}

Output:

a
 b c d e

Upvotes: 10

Related Questions