题解 | #参数解析#

参数解析

https://www.nowcoder.com/practice/668603dc307e4ef4bb07bcd0615ea677

方法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);
//         }
//     }
// }
全部评论

相关推荐

10-30 22:18
已编辑
毛坦厂中学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务