题解 | #参数解析#
参数解析
https://www.nowcoder.com/practice/668603dc307e4ef4bb07bcd0615ea677
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); StringBuilder sb = new StringBuilder(); ArrayList<String> list = new ArrayList(); boolean flag = false; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); //注意这里是可以这么写的 c == '”' if (c == '"') { //遇到第一个引号 flag为true,第二个引号 flag为false flag = flag ? false : true; continue;//继续遍历下一个字符 } //如果c是空格 ,且flag为false时,即没有引号 或已经是第二个引号结束 if (c == ' ' && !flag) { list.add(sb.toString());//往集合中添加当前拼接到的字符串 //我在这里学到了sb如何置空,只需要重新定义即可 sb = new StringBuilder();//置空 重新遍历下一个字符 } else { //即不是空格,也不是引号,就继续往里添加 sb.append(c); } } //注意这里还需要加一次,即把第四个元素加上,因为前面的循环只能加上前三个 list.add(sb.toString()); System.out.println(list.size()); //遍历输出即可 for (String s1 : list) { System.out.println(s1); } } }