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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

题目:随机生成一段数字和字符混合的字符串,例如:J,X,87,19,A,Q,M,K,49,30,J,47,P,B,41,63,然后分别把数字和字母进行排序?
  1. import java.util.Random;

  2. public class java01{
  3.         public static void main(String[] args){
  4.                 String s = method();
  5.                 method_1(s);
  6.         }
  7.         /*生成一个随机字符串*/
  8.         public static String method(){
  9.                 Random random = new Random();
  10.                 String str = "";
  11.                 for(int i=0;i<100;i++){
  12.                         int ran = random.nextInt(2);
  13.                         if(1==ran){
  14.                                 int sum = random.nextInt(100);
  15.                                 if(99!=i){
  16.                                         str+=sum+",";
  17.                                 }else{
  18.                                         str+=sum;
  19.                                 }
  20.                         }else{
  21.                                 char ch = (char) (random.nextInt(26)+'A');
  22.                                 if(99!=i){
  23.                                         str+=ch+",";
  24.                                 }else{
  25.                                         str+=ch;
  26.                                 }
  27.                         }
  28.                 }
  29.                 return str;
  30.         }
  31.        
  32.         /*把字符串中的数字和字母进行分离,分别存入数组strArr2和strArr1中*/
  33.         public static void method_1(String str){
  34.                 String[] strArr1 = new String[100];
  35.                 int[] strArr2 = new int[100];
  36.                 int count1 = 0;
  37.                 int count2 = 0;
  38.                 String[] strArr = str.split(",");
  39.                 for(int i=0;i<strArr.length;i++){ //    k,34,j,k,5,j,4,k,6l,j,5,k,7,l
  40.                         if(strArr[i].compareTo("A")>=0 && strArr[i].compareTo("Z")<=0){
  41.                                 strArr1[count1++] = strArr[i];
  42.                         }else{
  43.                                 strArr2[count2++] = Integer.parseInt(strArr[i]);
  44.                         }
  45.                 }
  46.   
  47.         /*对字符进行排序*/
  48.                 for(int i=0;i<count1-1;i++){
  49.                         for(int j=i+1;j<count1;j++){
  50.                                 if(strArr1[i].compareTo(strArr1[j])>0){
  51.                                         String temp;
  52.                                         temp = strArr1[i];
  53.                                         strArr1[i] = strArr1[j];
  54.                                         strArr1[j] = temp;
  55.                                 }
  56.                         }
  57.                 }
  58.                
  59.                 /*对数字进行排序*/
  60.                 for(int i=0;i<count2-1;i++){
  61.                         for(int j=i+1;j<count2;j++){
  62.                                 if(strArr2[i]>strArr2[j]){
  63.                                         int temp;
  64.                                         temp = strArr2[i];
  65.                                         strArr2[i] = strArr2[j];
  66.                                         strArr2[j] = temp;
  67.                                 }
  68.                         }
  69.                 }
  70.   
  71.         /*打印随机生成字符串*/
  72.                 System.out.println("随机生成字符串:");
  73.                 for(int i=0;i<strArr.length;i++){
  74.                         System.out.print(strArr[i]+" ");
  75.                 }
  76.                 System.out.println();
  77.                
  78.                 /*把排序后的数字和字符放到原来位置*/
  79.                 count1 = 0;
  80.                 count2 = 0;
  81.                 for(int i=0;i<strArr.length;i++){
  82.                         if(strArr[i].compareTo("A")>=0 && strArr[i].compareTo("Z")<=0){
  83.                                 strArr[i] = strArr1[count1++];
  84.                         }else{
  85.                                 strArr[i] = strArr2[count2++]+"";
  86.                         }
  87.                 }
  88.                
  89.                 /*打印排序后字符串*/
  90.                 System.out.println("排序后字符串:");
  91.                 for(int i=0;i<strArr.length;i++){
  92.                         System.out.print(strArr[i]+" ");
  93.                 }
  94.         }
  95. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
尤圣回 + 1 神马都是浮云

查看全部评分

1 个回复

倒序浏览
思路很清楚 可以用正则试试
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马