参数解析
在命令行输入如下命令: xcopy s c:\\ d:\\e, 各个参数如下: 参数1:命令字xcopy 参数2:字符串s 参数3:字符串c:\\ 参数4: 字符串d:\\e 请编写一个参数解析程序,实现将命令行各个参数解析出来。 解析规则:
1.参数分隔符为空格
2.对于用""包含起来的参数,如果中间有空格,不能解析为多个参数。比如在命令行输入xcopy s “C:\\program files” "d:\“时,参数仍然是4个,第3个参数应该是字符串C:\\program files,而不是C:\\program,注意输出参数时,需要将”"去掉,引号不存在嵌套情况。
3.参数不定长
4.输入由用例保证,不会出现不符合要求的输入
数据范围:字符串长度:
数据范围:字符串长度: 1≤s≤1000
进阶:时间复杂度: O(n)
,空间复杂度: O(n)
输入描述:
输入一行字符串,可以有空格
输出描述:
输出参数个数,分解后的参数,每个参数都独占一行
示例1
输入
xcopy /s c:\\ d:\\e
输出
4
xcopy
/s
c:\
d:\\e
Java 编程
package cn.net.javapub.javaintroduction.example;/*** @author: shiyuwang*/import java.io.*;public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String s;while ((s = br.readLine()) != null) {char[] chars = s.toCharArray();StringBuffer ana = new StringBuffer();int flag = 0;int count = 1;for (int i = 0; i < chars.length; i++) {if (chars[i] == '\"') {flag++;continue;}if (chars[i] != ' ') {ana.append(chars[i]);}if (chars[i] == ' ' && flag % 2 != 0) {ana.append(chars[i]);}if (chars[i] == ' ' && flag % 2 == 0) {ana.append("\n");count++;}}System.out.println(count + "\n" + ana.toString());}}
}
展示效果: