还是这样子解题吧,简单易懂
参数解析
https://www.nowcoder.com/practice/668603dc307e4ef4bb07bcd0615ea677
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String string = in.nextLine();
char[] charArray = string.toCharArray();
ArrayList<String> list = new ArrayList<>();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < charArray.length; i++) {
char c = charArray[i];
// 如果是双引号
if (c == '"') {
for (int j = i + 1; j < charArray.length; j++) {
// 找到下一个双引号
if (charArray[j] == '"') {
// 切割引号内的参数
list.add(string.substring(i + 1, j));
// 让最外层循环从下个参数开始
i = j + 1;
// 结束后i会进行i++,从而不会从空格开始
break;
}
}
continue;
}
if (c == ' ') {
list.add(builder.toString());
builder = new StringBuilder();
continue;
}
builder.append(c);
}
// 在""结束的情况下,builder是上次空格创建的空对象。如xcopy /s c:\\ "d:\\e"
if (builder.length() > 0) {
list.add(builder.toString());
}
System.out.println(list.size());
for (String s : list) {
System.out.println(s);
}
}
}

查看14道真题和解析