3. キーボードから文字列([a..zA..Z0..9])を入力し、これらの文字列を昇順・降順にソートする。
Java の場合, Collections#sort(List) や, Collections#reverse(List) を使ってやれば良いけど, いちいち List につっこんでやらなくてはならないのがなんとも...
まず, 昇順でソート
/* * $Id: Example3_1.java 1638 2007-08-19 15:51:47Z nanasess $ */ package jp.examples; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * Example3_1 * * <p> * 3.1 Accepting series of numbers, strings from keyboard and sorting them ascending order. * </p> * * @author $Author: nanasess $ * @version $Revision: 1638 $ $Date: 2007-08-20 00:51:47 +0900 (月, 20 8 2007) $ */ public class Example3_1 { /** * 入力した文字列を昇順にソートし, 表示する. * * @throws Exception エラーが発生した場合 */ public static void main(String[] args) throws Exception { // 標準入力を読み込む BufferedReader reader = new BufferedReader(new InputStreamReader(System.in), 1); String s = reader.readLine(); // 文字列を List へ追加 List<String> list = new ArrayList<String>(); for (int i = 0; i < s.length(); i++) { list.add(new Character(s.charAt(i)).toString()); } // 昇順にソート Collections.sort(list); // List の文字列を StringBuilder に追加 StringBuilder sb = new StringBuilder(); for (String str : list) { sb.append(str); } // 表示 System.out.println(sb.toString()); } }
次に降順でソート
Collections#reverse(List) を使っているだけで, 他は変りありません...
/* * $Id: Example3_2.java 1639 2007-08-19 16:02:48Z nanasess $ */ package jp.examples; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * Example3_2 * * <p> * 3.2 Accepting series of numbers, strings from keyboard and sorting them descending order. * </p> * * @author $Author: nanasess $ * @version $Revision: 1639 $ $Date: 2007-08-20 01:02:48 +0900 (月, 20 8 2007) $ */ public class Example3_2 { /** * 入力した文字列を降順にソートし, 表示する. * * @throws Exception エラーが発生した場合 */ public static void main(String[] args) throws Exception { // 標準入力を読み込む BufferedReader reader = new BufferedReader(new InputStreamReader(System.in), 1); String s = reader.readLine(); // 文字列を List へ追加 List<String> list = new ArrayList<String>(); for (int i = 0; i < s.length(); i++) { list.add(new Character(s.charAt(i)).toString()); } // まず, 昇順にソート Collections.sort(list); // 逆順にソート Collections.reverse(list); // List の文字列を StringBuilder に追加 StringBuilder sb = new StringBuilder(); for (String str : list) { sb.append(str); } // 表示 System.out.println(sb.toString()); } }