package futils;

import java.util.Vector;

/**
 * CsvParser Class
 */
public class CsvParser {

  StringBuffer sb;
  Vector list = new Vector();

  /**
   * CsvParser Constructor
   */
  public CsvParser(String s) {
    sb = new StringBuffer(s);
  }

  /**
   * getTokens Method
   *
   * @return    String[]    tokens
   */
  public String[] getTokens() {
    int tc = 0;
    int start = 0;

    for (int i = 0; i < sb.length(); i++) {
      if (sb.charAt(i) == ',') {
        addElement(
            sb.toString().substring(start, i));
        start = i + 1;
        tc++;
      }
    }

    addElement(
        sb.toString().substring(start, sb.length()));

    String strObj[] = new String[list.size()];


    for (int i = 0; i < list.size(); i++) {
      strObj[i] = (String) list.elementAt(i);
    }
    return strObj;
  }

  private void addElement(String s) {
    list.addElement(s.trim());
  }

  public static void main(String args[]) {
    CsvParser cp = new CsvParser("these, are,  43 345 &*() comma, + separated, :values");
    String s[] = cp.getTokens();
    for (int i = 0; i < s.length; i++)
      System.out.println(s[i]);
  }

}