A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package com.itheima;

  2. import java.util.*;

  3. /*
  4. * 定义一个静态方法,该方法可以接收一个List<Integer>,方法内对List进行排序
  5. * */
  6. public class test9 {

  7.         public static void main(String[] args) throws Exception {
  8.                 Method();
  9.         }
  10.        
  11.         public static void Method() throws Exception
  12.         {       
  13.                 //BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  14.                 Scanner sc = new Scanner(System.in);
  15.                 System.out.println("请输入需要排序的数字: ");
  16.                
  17.                 //用字符串的形式接收。
  18.                 String str = new String();
  19.                 //str = bufr.readLine();
  20.                 str = sc.nextLine();
  21.                 sc.close();
  22.                
  23.                 //用正则表达式判断获取的是不是全为数字。
  24.                 if(!(str.matches("[0-9]+")))
  25.                 {
  26.                         System.out.println("抱歉,只接受数字!");
  27.                         return;
  28.                 }
  29.                 System.out.println("你输入的原始数据为: "+str);
  30.                
  31.                 //创建字节数组
  32.                 char[] buf = str.toCharArray();
  33.                
  34.                 //字符串转换成字节数组并存放到字节数组
  35.                
  36.                 List<Integer> list = new ArrayList<Integer>();
  37.                
  38.                 for(int x=0;x<buf.length;x++)
  39.                 {
  40.                         //System.out.print(buf[x]);
  41.                         Integer temp = (int)buf[x];
  42.                         list.add(temp);
  43.                 }
  44.                 sort(list);
  45.                
  46.                 for(int i=0;i<list.size();i++)
  47.                 {
  48.                         System.out.print( list.get(i)+" ");
  49.                        
  50.                 }
  51.         }

  52.         private static void sort(List<Integer> list)
  53.         {
  54.                 Collections.sort(list);
  55.         }

  56. }
复制代码


1 个回复

正序浏览
你搞错了.35行,你创建的是字符数组,在44行,如果你用int直接进行强转一个字符,
获取到的是该字符在ASCII表中对应的数,
你要想将字符1变成整数1.就要用Integer的方法.parseInt
试试
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马