在这里使用regex很好。我敢打赌,我也有办法做到这一点,虽然我不是一个摇摆不定的人,所以我不能帮你。然而,有些事情是你无法避免的——有些事情,最终需要在某个地方循环你的字符串。你可以“自己”这样做:
String[] splitOnCapitals(String str) {
ArrayList array = new ArrayList();
StringBuilder builder = new StringBuilder();
int min = 0;
int max = 0;
for(int i = 0; i < str.length(); i++) {
if(Character.isUpperCase(str.charAt(i))) {
String line = builder.toString().trim();
if (line.length() > 0) array.add(line);
builder = new StringBuilder();
}
builder.append(str.charAt(i));
}
array.add(builder.toString().trim()); // get the last little bit too
return array.toArray(new String[0]);
}
我用以下测试驱动程序测试了它:
public static void main(String[] args) {
String test = "3/4 Ton truCk";
String[] arr = splitOnCapitals(test);
for(String s : arr) System.out.println(s);
test = "Start with Capital";
arr = splitOnCapitals(test);
for(String s : arr) System.out.println(s);
}
得到以下输出:
3/4
Ton tru
Ck
Start with
Capital