题解 | #参数解析#
参数解析
https://www.nowcoder.com/practice/668603dc307e4ef4bb07bcd0615ea677
分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); } } } }