私は楽しみのために小さな Java アプリケーションをプログラミングしましたが、すべてうまくいきました。私の問題は、コマンド ライン パラメーターを解析するメソッドに取り組んでいたときに、もっと効率的な方法があるはずだと感じたことです。私のプログラムは受け入れます:
-l I (I は新しい下限の整数) -u I (I は新しい上限の整数) -? (使用可能なコマンドライン オプションを出力します) -v (メイン クラスの詳細出力を有効にします)
parseArgs メソッドを次のように実装しました。
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.");
}
}
私が言ったように、私のコードはすべて正常に動作し、それを確認したい場合はそれを見ることができます. プロかどうかにかかわらず、他のプログラマーが、変数の数とパラメーターの順序を渡し、それらを正確に解析する効率的なコードパスを持つ状況にどのように取り組むのか、私はただ興味があります. 私は自分が最高ではないことを知っているので、疑問に思っています。どの言語でも答えは大丈夫です。私は手順に興味があります。そこからもう少し学ぶために必要な言語を適応させることができます。
前もって感謝します。〜デビッド・コリンズ