题解 | #参数解析#
参数解析
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);
}
}
}


小天才公司福利 1326人发布