日期:2014-05-20  浏览次数:20799 次

前辈们,求解java题,初学者来的
题目描述
输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。
你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。
输入格式
输入包含多组测试数据。每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。  
输入数据保证:分割得到的非负整数不会大于100000000,输入数据不可能全由‘5’组成。
输出
对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。
样例输入
0051231232050775
样例输出
0 77 12312320
------解决方案--------------------

public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String line;
while ((line=scanner.nextLine())!=null&&line.length()>0) {
String[] nums=line.split("5");
List<Integer> list=new LinkedList<Integer>();
for (String num : nums) {
if (num.length()==0) {
//防止连续出现5
continue;
}
list.add(Integer.valueOf(num));
}
Collections.sort(list);
for (Integer integer : list) {
System.out.print(integer);
System.out.print(" ");
}
System.out.println();
}
scanner.close();
}

------解决方案--------------------
import java.util.*;

public class SplitByToken {

    private static final String SPLIT_TOKEN_IN  = "5";
    private static final String SPLIT_TOKEN_OUT = " ";

    public static void main(String[] args) {
        try {
            Scanner scanner = new Scanner(System.in);
            String  scannerNextLine = "";
            while ((scannerNextLine = scanner.nextLine()) != null && scannerNextLine.length() > 0) {

                String[] splitStringArray = scannerNextLine.split(SPLIT_TOKEN_IN);

                SortedSet<String> splitStringSortedSet = new TreeSet<String>();
                for (String splitString : splitStringArray) {
                    splitStringSortedSet.add(splitString);
                }

                String  printString = "";
                for (String splitString : splitStringSortedSet) {
                    printString = printString.concat(Integer.valueOf(splitString) + SPLIT_TOKEN_OUT);
                }
                System.out.println(printString.trim());
            }
            scanner.close();
        } catch (Exception e) {
            System.out.println(e);
        } finally {
        }
    }
}


输入输出
0051231232050775
0 77 12312320
0051231232050775
0 77 12312320
100000000
100000000
5
无输出
无输入
退出程序