In Java, you can StringTokennizer class to split a String into different tokenas by defined delimiter.(space is the default delimiter). Here’re two StringTokennizer examples :

Example 1

Uses StringTokennizer to split a string by “space” and “comma” delimiter, and iterate the StringTokenizer elements and print it out one by one.


package com.mkyong;

import java.util.StringTokenizer;

public class App {
	public static void main(String[] args) {

		String str = "This is String , split by StringTokenizer, created by mkyong";
		StringTokenizer st = new StringTokenizer(str);

		System.out.println("---- Split by space ------");
		while (st.hasMoreElements()) {
			System.out.println(st.nextElement());
		}

		System.out.println("---- Split by comma ',' ------");
		StringTokenizer st2 = new StringTokenizer(str, ",");

		while (st2.hasMoreElements()) {
			System.out.println(st2.nextElement());
		}
	}
}

Output


---- Split by space ------
This
is
String
,
split
by
StringTokenizer,
created
by
mkyong
---- Split by comma ',' ------
This is String 
 split by StringTokenizer
 created by mkyong

Example 2

Read a csv file and use StringTokenizer to split the string by “|” delimiter, and print it out.

File : c:/test.csv


1| 3.29| mkyong
2| 4.345| eclipse

package com.mkyong;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class ReadFile {

	public static void main(String[] args) {

	BufferedReader br = null;

	try {

		String line;

		br = new BufferedReader(new FileReader("c:/test.csv"));

		while ((line = br.readLine()) != null) {
		   System.out.println(line);

		   StringTokenizer stringTokenizer = new StringTokenizer(line, "|");

		   while (stringTokenizer.hasMoreElements()) {

		    Integer id = Integer.parseInt(stringTokenizer.nextElement().toString());
		    Double price = Double.parseDouble(stringTokenizer.nextElement().toString());
		    String username = stringTokenizer.nextElement().toString();
					
			StringBuilder sb = new StringBuilder();
			sb.append("\nId : " + id);
			sb.append("\nPrice : " + price);
			sb.append("\nUsername : " + username);
			sb.append("\n*******************\n");

			System.out.println(sb.toString());
		   }
		}

		System.out.println("Done");

	} catch (IOException e) {
		e.printStackTrace();
	} finally {
		try {
			if (br != null)
				br.close();

		} catch (IOException ex) {
			ex.printStackTrace();
		}
	}

	}
}

Output


1| 3.29| mkyong

Id : 1
Price : 3.29
Username :  mkyong
*******************

2| 4.345| eclipse

Id : 2
Price : 4.345
Username :  eclipse
*******************

Done

Reference

  1. http://java.sun.com/javase/6/docs/api/java/util/StringTokenizer.html