Well, StringTokenizer will work fine to tokenize that String into the four elements you want. You might have to show us your code and perhaps we can see what you are doing wrong.
There are other ways to do this though. You could (as you have noticed) use the split() method of the String class. Strictly you would need to use the "any whitespace" symbol in your regex ([\s]), but since your regex is so simple, just using a space in the split method will work. If you are still unsure of regex's, you could treat the String as a char  and process each character at a time.
Ok suppose you get a string that contains the following: String input = "\"firstname\" lastname age birthday"; (the \" is how you 'escape' the double quote character, i.e. how you tell java to stick a double quote character in a string without interpreting it as a String delimiter)
Did any of those tips help with the embedded blank in \"Ronald Ali\" ?
I drag a lot of bad habits from my pre-Java days, but I'd probably get one token at a time from the string the hard way with a "cursor" or position in the string:
You can smarten this up with regular expressions ... maybe one that will match the first quoted string (allowing blanks inside) OR the next unquoted string up to a blank or end of input. [ August 31, 2005: Message edited by: Stan James ]
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi