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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-王燚 中级黑马   /  2012-10-12 19:12  /  1483 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

综全练习

        1.得到一个字符串,这个字符串是数字与字母的组全
          例如  12,A,54,4,D,8,K,24  它们之间使用,分开.

          其中的数字是100以内随机得到的,字母是A-Z 随机得到的

          一共有100个.

        2.将这个字符串中所有数字取到进行排序,所有字母得到进行排序.

        思路: 1.得到字符串   
                        随机得到一个100以内的数    ran.nextInt(100)   简单
                        随风得到一个A-Z双内的字符   (char)(ran.nextInt(26)+'A');

                        if(ran.nextInt()%2==0){
                       
                        }else{
                       
                        }

                   2.操作这个字符串   发现这些数字与字母是用,分开   想到split
                  
                          在判断数组中的哪些是数字哪些是字母
  1. import java.util.*;
  2. class Test7
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 String s=getRandomString(); //得到一个随机字符串
  7.                
  8.                 System.out.println(s);//显示得到的随机字符串

  9.                 operationString(s);
  10.         }
  11.        
  12.         //将一个StringBuilder中的内容转换成int[]中的元素
  13.         public static int[] stringBuilderToIntArray(StringBuilder sb){
  14.        
  15.                 String[] st=sb.toString().split(","); //st中装的所有数字,但是是String类型

  16.                 int[] arr=new int[st.length];

  17.                 for(int i=0;i<st.length;i++){
  18.                        
  19.                         arr[i]=Integer.parseInt(st[i]); //将String数组中的所有元素转换成数字
  20.                 }

  21.                 return arr;

  22.         }

  23.         public static char[] stringBuilderToCharArray(StringBuilder sb){
  24.                
  25.                 String[] st=sb.toString().split(",");

  26.                 char[] ch=new char[st.length];

  27.                 for(int i=0;i<st.length;i++){
  28.                        

  29.                         ch[i]=st[i].charAt(0);
  30.                 }
  31.                
  32.                 return ch;

  33.         }

  34.         public static void sortIntArray(int[] arr){
  35.                
  36.                 Arrays.sort(arr);
  37.         }

  38.         public static void sortCharArray(char[] arr){

  39.                 Arrays.sort(arr);
  40.         }


  41.         //用来操作随机得到的字符串
  42.         /*
  43.                 操作字符串的目的是得到其中的数字与字母

  44.                 将原字符串中所有数字得到放到StringBuilder中
  45.                 所有字母得到放到另一个StringBuilder中
  46.         */

  47.         public static void operationString(String s){
  48.                
  49.                 String[] st=s.split(","); //随机字符串都是用逗号分开的
  50.                 //st数组中就装的是所有的数字与字母
  51.                
  52.                
  53.                 StringBuilder b1=new StringBuilder(); //用来装数字

  54.                 StringBuilder b2=new StringBuilder(); //用来装字母
  55.                

  56.                 //下面循环的作用是便利st数组,将其中的所有数字与字母分开装到 b1,b2两个容器中,
  57.                 //它们之间也是使用逗号分开
  58.                 for(int i=0;i<st.length;i++){
  59.                         /*
  60.                                 因为parseInt方法在操作时,如果不能进行转换会抛出异常
  61.                         */
  62.                         /*
  63.                         try{
  64.                                 int num=Integer.parseInt(st[i]);
  65.                                         b1.append(num).append(",");
  66.                         }catch(NumberFormatException e){
  67.                                 b2.append(st[i]).append(",");
  68.                         }*/
  69.                         char c=st[i].charAt(0);  

  70.                         if(c>='A'&&c<='Z'){
  71.                                 b2.append(st[i]).append(","); //所有字母用逗号分开
  72.                         }else{
  73.                                 b1.append(st[i]).append(","); //所有数字 用逗号分开
  74.                         }
  75.                 }

  76.                
  77.                 int[] int_arr=stringBuilderToIntArray(b1.deleteCharAt(b1.length()-1));//参数中是为了去掉最扣的,号

  78.                 char[] char_arr=stringBuilderToCharArray(b2.deleteCharAt(b2.length()-1));//参数中是为了去掉最扣的,号

  79.                
  80.                 sortIntArray(int_arr);//对int数组排序

  81.                 sortCharArray(char_arr);//对char数组排序
  82.                
  83.                
  84.                 System.out.println("所有数字排序");
  85.                 for(int i=0;i<int_arr.length;i++){
  86.                         System.out.print(int_arr[i]+"  ");
  87.                 }
  88.                 System.out.println("\n所有字母排序");
  89.                 for(int i=0;i<char_arr.length;i++){
  90.                         System.out.print(char_arr[i]+"  ");
  91.                 }


  92.         }

  93.         //得到一个数字与字母的组的字符串
  94.         public static String getRandomString(){
  95.        
  96.                 Random ran=new Random();
  97.                 //String s="";
  98.                 StringBuilder builder=new StringBuilder();
  99.                 for(int i=0;i<10;i++){

  100.                         if(ran.nextInt(2)%2==0){ //随机得到一个数判断是否是偶数,如果是偶数得到一个字符.
  101.                                 char c=(char)(ran.nextInt(26)+'A');
  102.                                 builder.append(c).append(",");
  103.                                 //s+=c+",";
  104.                         }else{
  105.                                 int n=ran.nextInt(100);
  106.                                 builder.append(n).append(",");
  107.                                 //s+=n+",";
  108.                         }       
  109.                 }       
  110.                 return builder.deleteCharAt(builder.length()-1).toString();
  111.                 //return s.substring(0,s.length()-1); //就是去掉最后的逗号
  112.         }

  113. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马