前提・実現したいこと
・コマンドライン引数から整列順序と1以上の整数を受け取り、ascなら昇順descなら降順に並び替えるシステムを作りたい
・args[0]にascかdescを指定する
・何も入力されなかった場合、args[0]にascかdescしか入力されなかった場合に「Usag : 」を表示する
発生している問題・エラーメッセージ
・何も入力されなかった場合のusageは実装できていますが、args[0]にascかdescしか入力されなかった場合にusageを表示する手立てが思いつきません。
・descは並び替えができるのですが、ascの並び替えができません。
該当のソースコード
public class SortationOrder {
public static void main(String args[]) {
if (args.length ==0){
System.out.println("Usage : java");
} else if (args[0].equals("desc")) { int[] array = new int[args.length - 1]; for(int i=0;i<args.length-1;i++) { int a = Integer.parseInt(args[i + 1]); array[i] = a; } for (int i = 0; i < args.length-1; i++) { for (int j = 0; j < args.length - 2 - i; j++) { if (array[i] < array[i + 1]) { int box = array[i]; array[i] = array[i + 1]; array[i + 1] = box; } } } System.out.print("befor [ "); for (int i = 0; i < args.length-1; i++) { System.out.print(args[i+1] + " "); } System.out.println("]"); System.out.print("after [ "); for (int i = 0; i < args.length-1; i++) { System.out.print(array[i] + " "); } System.out.println("]"); } else if (args[0].equals("asc")) { int[] array = new int[args.length - 1]; for(int i=0;i<args.length-1;i++) { int a = Integer.parseInt(args[i + 1]); array[i] = a; } for (int i = 0; i < args.length-1; i++) { for (int j = 0; j < args.length - 2 - i; j++) { if (array[i] > array[i + 1]) { int box = array[i]; array[i] = array[i + 1]; array[i + 1] = box; } } } System.out.print("befor [ "); for (int i = 0; i < args.length-1; i++) { System.out.print(args[i+1] + " "); } System.out.println("]"); System.out.print("after [ "); for (int i = 0; i < args.length-1; i++) { System.out.print(array[i] + " "); } System.out.println("]"); } else { System.out.println("Usage : java"); } }
}
補足情報(FW/ツールのバージョンなど)
いつもお世話になります。
ヒントだけでもいいので、解答をよろしくお願い致します。m(__)m
あなたの回答
tips
プレビュー