001 package com.thaiopensource.xml.util; 002 003 public class StringSplitter { 004 private StringSplitter() { 005 } 006 007 public static String[] split(String str) { 008 int len = str.length(); 009 int nTokens = 0; 010 for (int i = 0; i < len; i++) 011 if (!isSpace(str.charAt(i)) && (i == 0 || isSpace(str.charAt(i - 1)))) 012 nTokens++; 013 String[] tokens = new String[nTokens]; 014 nTokens = 0; 015 int tokenStart = -1; 016 for (int i = 0; i < len; i++) { 017 if (isSpace(str.charAt(i))) { 018 if (tokenStart >= 0) { 019 tokens[nTokens++] = str.substring(tokenStart, i); 020 tokenStart = -1; 021 } 022 } 023 else if (i == 0 || isSpace(str.charAt(i - 1))) 024 tokenStart = i; 025 } 026 if (tokenStart >= 0) 027 tokens[nTokens] = str.substring(tokenStart, len); 028 return tokens; 029 } 030 031 private static boolean isSpace(char c) { 032 switch (c) { 033 case ' ': 034 case '\r': 035 case '\n': 036 case '\t': 037 return true; 038 } 039 return false; 040 } 041 042 }