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

Posted dongma

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了参数解析(得到输入参数)相关的知识,希望对你有一定的参考价值。

题目描述

在命令行输入如下命令:

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);
        }
    }


}

 

 

以上是关于参数解析(得到输入参数)的主要内容,如果未能解决你的问题,请参考以下文章

tensorflow中卷积层输出特征尺寸计算和padding参数解析

解析参数“--change-batch”时出错:预期:“=”,接收到:“”用于输入:

从流输入中解析没有根元素的 XML 片段列表

在python命令行中输入解析参数作为变量?

如何为函数参数“*argv”添加解析器参数

将命令行参数输入文件传递给要解析的类