综全练习
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
在判断数组中的哪些是数字哪些是字母- import java.util.*;
- class Test7
- {
- public static void main(String[] args)
- {
- String s=getRandomString(); //得到一个随机字符串
-
- System.out.println(s);//显示得到的随机字符串
- operationString(s);
- }
-
- //将一个StringBuilder中的内容转换成int[]中的元素
- public static int[] stringBuilderToIntArray(StringBuilder sb){
-
- String[] st=sb.toString().split(","); //st中装的所有数字,但是是String类型
- int[] arr=new int[st.length];
- for(int i=0;i<st.length;i++){
-
- arr[i]=Integer.parseInt(st[i]); //将String数组中的所有元素转换成数字
- }
- return arr;
- }
- public static char[] stringBuilderToCharArray(StringBuilder sb){
-
- String[] st=sb.toString().split(",");
- char[] ch=new char[st.length];
- for(int i=0;i<st.length;i++){
-
- ch[i]=st[i].charAt(0);
- }
-
- return ch;
- }
- public static void sortIntArray(int[] arr){
-
- Arrays.sort(arr);
- }
- public static void sortCharArray(char[] arr){
- Arrays.sort(arr);
- }
- //用来操作随机得到的字符串
- /*
- 操作字符串的目的是得到其中的数字与字母
- 将原字符串中所有数字得到放到StringBuilder中
- 所有字母得到放到另一个StringBuilder中
- */
- public static void operationString(String s){
-
- String[] st=s.split(","); //随机字符串都是用逗号分开的
- //st数组中就装的是所有的数字与字母
-
-
- StringBuilder b1=new StringBuilder(); //用来装数字
- StringBuilder b2=new StringBuilder(); //用来装字母
-
- //下面循环的作用是便利st数组,将其中的所有数字与字母分开装到 b1,b2两个容器中,
- //它们之间也是使用逗号分开
- for(int i=0;i<st.length;i++){
- /*
- 因为parseInt方法在操作时,如果不能进行转换会抛出异常
- */
- /*
- try{
- int num=Integer.parseInt(st[i]);
- b1.append(num).append(",");
- }catch(NumberFormatException e){
- b2.append(st[i]).append(",");
- }*/
- char c=st[i].charAt(0);
- if(c>='A'&&c<='Z'){
- b2.append(st[i]).append(","); //所有字母用逗号分开
- }else{
- b1.append(st[i]).append(","); //所有数字 用逗号分开
- }
- }
-
- int[] int_arr=stringBuilderToIntArray(b1.deleteCharAt(b1.length()-1));//参数中是为了去掉最扣的,号
- char[] char_arr=stringBuilderToCharArray(b2.deleteCharAt(b2.length()-1));//参数中是为了去掉最扣的,号
-
- sortIntArray(int_arr);//对int数组排序
- sortCharArray(char_arr);//对char数组排序
-
-
- System.out.println("所有数字排序");
- for(int i=0;i<int_arr.length;i++){
- System.out.print(int_arr[i]+" ");
- }
- System.out.println("\n所有字母排序");
- for(int i=0;i<char_arr.length;i++){
- System.out.print(char_arr[i]+" ");
- }
- }
- //得到一个数字与字母的组的字符串
- public static String getRandomString(){
-
- Random ran=new Random();
- //String s="";
- StringBuilder builder=new StringBuilder();
- for(int i=0;i<10;i++){
- if(ran.nextInt(2)%2==0){ //随机得到一个数判断是否是偶数,如果是偶数得到一个字符.
- char c=(char)(ran.nextInt(26)+'A');
- builder.append(c).append(",");
- //s+=c+",";
- }else{
- int n=ran.nextInt(100);
- builder.append(n).append(",");
- //s+=n+",";
- }
- }
- return builder.deleteCharAt(builder.length()-1).toString();
- //return s.substring(0,s.length()-1); //就是去掉最后的逗号
- }
- }
复制代码 |