재미있는 작은 Java 응용 프로그램을 프로그래밍했으며 모든 것이 잘 작동합니다. 내 문제는 내가 명령 줄 매개 변수를 구문 분석하기 위해 내 방법으로 작업 할 때, 나는 훨씬 더 효율적인 방법이 있어야한다고 생각했다. 내 프로그램은 다음을 허용합니다.효율적인 명령 행 구문 분석
-l (I는 새로운 하한에 대한 정수입니다.) -u I (I는 새로운 상한에 대한 정수입니다) -? 내 코드는 모두 잘 작동
private static void parseArgs(String[] arguments) {
String t = "";
for (int c = 0; c < arguments.length; c++) t += arguments[c];
if (t.contains("-")) {
String[] params = t.split("-");
for (int c = 0; c < params.length; c++) params[c] = params[c].trim();
for (int c = 0; c < params.length; c++) {
if (params[c].startsWith("?") && !docOnly) {
docOnly = true;
printHelp();
}
if (params[c].startsWith("l") && startPoint == 1) {
try {
startPoint = Integer.parseInt(params[c].substring(1));
if (startPoint < 0) {
startPoint = 0;
}
} catch (NumberFormatException e) {
error = true;
System.out.println("\tParameter Error: " + params[c]);
}
}
if (params[c].startsWith("u") && endPoint == 1000) {
try {
endPoint = Integer.parseInt(params[c].substring(1));
if (endPoint < 0) {
endPoint = 1000;
}
} catch (NumberFormatException e) {
error = true;
System.out.println("\tParameter Error: " + params[c]);
}
}
if (params[c].startsWith("v") && !verbose) {
verbose = true;
}
}
} else {
error = true;
System.out.println("\tError in Parameters. Use -? for available options.");
}
}
내가 말했듯이 : (출력 사용할 수있는 명령 줄 옵션) -v는 (메인 클래스에 대한 자세한 정보 출력을 활성화는)
나는 다음과 같은 방법으로 내 parseArgs 방법을 구현 확인하려면 take a look at it 수 있습니다. 필자는 전문적이든 아니든 다른 프로그래머들이 변수 수와 매개 변수 순서를 전달하고이를 정확하게 파싱하는 효율적인 코드 패쓰를 사용하는 상황에 어떻게 대처할 것인지 궁금합니다. 나는 내 것이 최고가 아니라는 것을 알고있다. 그래서 나는 궁금해하고있다. 어떤 언어로도 대답이 될 것입니다. 나는 프로 시저에 궁금합니다. 나는 조금 더 배우기 위해 필요한 모든 언어를 적용 할 수 있습니다.미리 감사드립니다. ~ 데이비드 콜린스
이 질문은 codereview.se에 더 적합합니다. –