黑马程序员技术交流社区
标题:
分享一个String 和 Integer的综合练习题
[打印本页]
作者:
黑马-王燚
时间:
2012-10-12 19:12
标题:
分享一个String 和 Integer的综合练习题
综全练习
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); //就是去掉最后的逗号
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2