分3种情况
1、遇到空格时,结束当前子字符串,开启下一个子字符串
2、遇见 " 时 用循环从当前开始,到下一个 " 结束,其间的字符归到一个字符串
3、普通字符时 存储到一个字符串内
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
String s = in.nextLine();
int len = s.length();
StringBuffer str = new StringBuffer();
ArrayList<String> arrayList = new ArrayList<>();
for (int i = 0; i < len ; i++) {
char ch = s.charAt(i);
if (ch == '"') {
//“ ” 号内部的字符全部假如到一个子字符串
if (s.charAt(i - 1) != ' ') {
arrayList.add(str.toString());
//把前一个字符串加入到arrayList中
str = new StringBuffer();
}
i += 1;
while ( i < len && s.charAt(i) != '"') {
str.append(s.charAt(i++));
}
} else if (ch == ' ') { //遇见空格,表示前一个字符串完毕,封存
arrayList.add(str.toString());
str = new StringBuffer();
} else {
str.append(ch);
}
}
//封存最好一个子字符串
arrayList.add(str.toString());
System.out.println(arrayList.size());
for (String s1 : arrayList) {
System.out.println(s1);
}
}
}
}



京公网安备 11010502036488号