参数2:字符串/s
参数3:字符串c:\
参数4: 字符串d:\
请编写一个参数解析程序,实现将命令行各个参数解析出来。
解析规则:
1.参数分隔符为空格
2.对于用“”包含起来的参数,如果中间有空格,不能解析为多个参数。比如在命令行输入xcopy /s “C:\program files” “d:\”时,参数仍然是4个,第3个参数应该是字符串C:\program files,而不是C:\program,注意输出参数时,需要将“”去掉,引号不存在嵌套情况。
3.参数不定长
4.输入由用例保证,不会出现不符合要求的输入
参数2:字符串/s
参数3:字符串c:\
参数4: 字符串d:\
请编写一个参数解析程序,实现将命令行各个参数解析出来。
解析规则:
1.参数分隔符为空格
2.对于用“”包含起来的参数,如果中间有空格,不能解析为多个参数。比如在命令行输入xcopy /s “C:\program files” “d:\”时,参数仍然是4个,第3个参数应该是字符串C:\program files,而不是C:\program,注意输出参数时,需要将“”去掉,引号不存在嵌套情况。
3.参数不定长
4.输入由用例保证,不会出现不符合要求的输入
code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
String[] strings = s.split(" ");
List<String> list = new ArrayList<String>();
for(int i=0;i<strings.length;) {
if(strings[i].charAt(0)!='"') {
list.add(strings[i]);
++i;
}
else {
if(strings[i].charAt(strings[i].length()-1)=='"') {
list.add(strings[i].substring(1, strings[i].length()-1));
++i;
}
else {
StringBuilder sb = new StringBuilder();
sb.append(strings[i].substring(1)+" ");
++i;
while(strings[i].charAt(strings[i].length()-1)!='"') {
sb.append(strings[i]+" ");
++i;
}
// if(i != strings.length){
sb.append(strings[i].substring(0, strings[i].length()-1));
++i;
// }
list.add(sb.toString());
}
}
}
System.out.println(list.size());
Iterator it = list.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}