JDK 1.4+ 引入 String.split(regex),但 MIDP 1.0/2.0 均未提供。實際開發常需解析 CSV、通訊協定、設定檔等分隔字串,需自行實作。
indexOf(String, fromIndex) 尋找分隔字串位置。substring(start, end) 取得片段,存入 Vector。indexOf 回傳 -1(不再出現)。String[] 回傳。/**
* 分割字串,支援多字元分隔符。
* @param original 待分割字串
* @param regex 分隔字串(非正則,純字面匹配)
* @return 分割後字串陣列
*/
private static String[] split(String original, String regex) {
int startIndex = 0;
Vector v = new Vector();
int index = 0;
startIndex = original.indexOf(regex);
while (startIndex < original.length() && startIndex != -1) {
String token = original.substring(index, startIndex);
v.addElement(token);
index = startIndex + regex.length();
startIndex = original.indexOf(regex, index);
}
// 尾段
v.addElement(original.substring(index));
String[] result = new String[v.size()];
for (int i=0;i
String test = "apple,banana,orange,grape";
String[] fruits = split(test, ",");
// fruits = {"apple","banana","orange","grape"}
String multi = "A::B::C";
String[] parts = split(multi, "::");
// parts = {"A","B","C"}
String edge = ",leading,trailing,";
String[] ed = split(edge, ",");
// ed = {"","leading","trailing",""} // 保留空欄位
regex 為純字面分隔符,不支援正則表達式。如需正則,請整合 kxml 或自行實作 NFA。substring 在 MIDP 多為共享底層 char[](Copy-on-Write),記憶體開銷極低。regex=="" 會導致無限迴圈,建議開頭檢查 if (regex.length()==0) return new String[]{original};。StringUtils 類別,配合 join、trimAll 等常用方法構建完整字串工具庫。