提供一個靜態工具方法 Split(String str, String sp),利用 java.util.StringTokenizer 依指定分隔字串切割字串,回傳字串陣列。若分割結果少於 2 片或發生異常則回傳 null。
/**
* 字符串分割
* @param str 要分割的字符串
* @param sp 分隔子串
* @return 分割後的字符串陣列,失敗回傳 null
*/
public static String[] Split(String str, String sp) {
StringTokenizer st = new StringTokenizer(str, sp);
try {
int count = st.countTokens();
if (count <= 1) return null;
String[] result = new String[count];
int i = 0;
while (st.hasMoreTokens()) {
result[i++] = st.nextToken();
}
return result;
} catch (Exception e) {
return null;
}
}
補充說明:
StringTokenizer 將 sp 視為「分隔字元集合」,非完整子字串。例如 Split("a,b;c", ",;") 會以逗號或分號任一為分隔。str.split(Pattern.quote(sp))(Java 1.4+)。null 而非空陣列,呼叫端需檢查避免 NullPointerException。