需要先判断是整数还是字符串的- import java.math.BigInteger;
- import java.util.Arrays;
- import java.util.Scanner;
- public class Test_ForSort {
- public static void main(String[] args) {
- /*
- * 编写一个类,其中包含两个排序的方法sort(),参数不同,当键盘录入的是一串整数,就按照从小到大的顺序输出,
- * 如果键盘录入的是一个字符串,就将字符串反序输出
- * 分析:
- * 1.键盘录入,判断是否是整数或者字符串
- * 2.定义两个方法,参数不同方法名相同,方法重载sort()
- */
- Scanner sc = new Scanner(System.in);
- System.out.println("请输入整数或字符串:");
- //无论是整数还是字符串,都是先当做字符串
- String line = sc.nextLine();
- //用捕抓异常的方法来判断是否是整数
- try {
- //整数的范围可能会超出int范围,所以用BigInteger接收
- BigInteger bi = new BigInteger(line);
- sort(bi);
- } catch (Exception e) {
- //不是整数的都当做字符串
- sort(line);
- }
- }
- private static void sort(BigInteger bi) {
- char[] arr = bi.toString().toCharArray();
- //数组的排序方法
- Arrays.sort(arr);
- //还有另一种,冒泡排序法,当然也可以选择排序法
- /*for (int i = 0; i < arr.length; i++) {
- for (int j = 0; j < arr.length-i; j++) {
- if (arr[j] > arr[j+1]) {
- char c = arr[j];
- arr[j] = arr[j+1];
- arr[j+1] = c;
- }
- }
- }*/
- //遍历数组,输出每个元素
- for (char c : arr) {
- System.out.print(c);
- }
- System.out.println();
- }
-
- private static void sort(String line) {
- //转换为StringBuilder
- StringBuilder sb = new StringBuilder(line);
- //反转方法
- sb.reverse();
- //输出
- System.out.println(sb);
- }
- }
复制代码 |