【華為機試074】引數解析
阿新 • • 發佈:2018-12-24
題目描述:
在命令列輸入如下命令:
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.輸入由用例保證,不會出現不符合要求的輸入
Java實現:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); StringBuffer sb = new StringBuffer(); int len = 0; int quotaNum = 0; for (int i = 0; i < str.length(); i++){ if (str.charAt(i) == '\"'){ quotaNum++; continue; } if (str.charAt(i) != ' '){ sb.append(str.charAt(i)); } else if (quotaNum % 2 == 0){ sb.append('\n'); len++; }else { sb.append(' '); } } System.out.println(len+1); System.out.println(sb.toString()); } }
知識點:
- ''需要轉義為\''
- 用一個變數持續統計''的數量,如果遇到了空格,且為偶數,則需要換行;如果不為偶數,說明是一個字串內的空格,需要新增進去