方法1:先后用引号和空格分割字符串得到字符串数组,引号不存在嵌套情况的情况,故使用引号对字符串分割后,下标为奇数的元素必定为引号内的;下标为偶数的元素必定不是引号内的,可再次用空格进行分割
方法2:遍历字符串,根据当前字符串是否为引号和空格以判断是否为完整的参数
import java.util.*;
//方法1:先后用/和"分割字符串得到字符串数组
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] s = sc.nextLine().trim().split("\"");
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < s.length; i++) {
if (i % 2 == 1) {
list.add(s[i]);
} else {
String[] ss = s[i].trim().split("[ ]+");
for (String str : ss) {
list.add(str);
}
}
}
System.out.println(list.size());
for (String str : list) {
System.out.println(str);
}
}
}
//方法2:遍历字符串
// public class Main {
// public static void main(String[] args) {
// Scanner sc = new Scanner(System.in);
// String line = sc.nextLine();
// ArrayList<String> list = new ArrayList<>();
// StringBuilder sb = new StringBuilder();
// boolean flag = false;
// String s = "";
// for (int i = 0; i < line.length(); i++) {
// char c = line.charAt(i);
// if (!flag) {
// if (Character.isWhitespace(c)) {
// s = sb.toString();
// if (!"".equals(s)) {
// list.add(s);
// }
// sb = new StringBuilder();
// } else if ( c == '"') {
// flag = true;
// } else {
// sb.append(c);
// }
// } else {
// if (Character.isWhitespace(c)) {
// sb.append(c);
// } else if ( c == '"') {
// s = sb.toString();
// if (!"".equals(s)) {
// list.add(s);
// }
// sb = new StringBuilder();
// flag = false;
// } else {
// sb.append(c);
// }
// }
// }
// s = sb.toString();
// if (!"".equals(s)) {
// list.add(s);
// }
// System.out.println(list.size());
// for (String str : list) {
// System.out.println(str);
// }
// }
// }

京公网安备 11010502036488号