码迷,mamicode.com
首页 > 其他好文 > 详细

参数解析(得到输入参数)

时间:2020-07-05 17:40:53      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:rgs   style   而不是   asn   ons   add   for   uil   用例   

题目描述

在命令行输入如下命令:

xcopy /s c:\ d:\,

各个参数如下: 

参数1:命令字xcopy 

参数2:字符串/s

参数3:字符串c:\

参数4: 字符串d:\

请编写一个参数解析程序,实现将命令行各个参数解析出来。

 

解析规则: 

1.参数分隔符为空格 
2.对于用“”包含起来的参数,如果中间有空格,不能解析为多个参数。比如在命令行输入xcopy /s “C:\program files” “d:\”时,参数仍然是4个,第3个参数应该是字符串C:\program files,而不是C:\program,注意输出参数时,需要将“”去掉,引号不存在嵌套情况。
3.参数不定长 
4.输入由用例保证,不会出现不符合要求的输入 

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {


    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            String a = scanner.nextLine();
            getMaxCommonStr(a);
        }
    }

    private static void getMaxCommonStr(String str){
      int yinCount = 0;
        char[] chars = str.toCharArray();
        List<String> result = new ArrayList<>();
        StringBuilder temp = new StringBuilder();
        for (char c : chars) {
            if(c == ‘"‘){
                if(yinCount == 0){
                    yinCount++;
                }else {
                    yinCount = 0;
                }

            }
            else if(c == ‘ ‘){
                if(yinCount > 0){// 前面有 " 号
                    temp.append(c);
                }else {
                    result.add(temp.toString());
                    temp = new StringBuilder();
                }
            }else {
                temp.append(c);
            }
        }
        result.add(temp.toString());

        System.out.println(result.size());
        for (String s : result) {
            System.out.println(s);
        }
    }


}

 

 

参数解析(得到输入参数)

标签:rgs   style   而不是   asn   ons   add   for   uil   用例   

原文地址:https://www.cnblogs.com/dongma/p/13246511.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!