You can do this simply by replace() method in String class.
From the constructor you used, tokens are created by splitting your string from whitespaces. Therefore whitespaces are omitted. I don't think putting spaces yourself is not a good answer. Here, your 'comma' is also omitted.
I think you have to use StringTokenizer(String str, String delim) constructor. Then you have to change your codes completely..! (Refer java API docs for help)
subject: Can you write a function that will replace all tokens delimited by @ with a given String?