JAVA字符串练习(一)

1.创建一个长度是5的随机字符串,随机字符有可能是数字,大写字母或者小写字母


给点提示: 数字和字符之间可以通过互相转换

char c = 'A';

short s = (short) c;


通过这个手段就能够知道字符 a-z A-Z 0-9 所对应的数字的区间了

/*
'0'-'9':48-57
'A'-'Z':65-90
'a'-'z':97-122
*/
char[]cs = new char[5];
for(int i=0;i<5;) {
    //m是取值在48到122之间的随机数
	int m = (int )(48+Math.random()*(122-48+1));
		if((m>='0'&&m<='9')||(m>='A'&&m<='Z')||(m>='a'&&m<='z')) {
			cs[i] = (char) m;
            i++;
	    }
}
//把字符数组转化成字符串
String str = String.valueOf(cs);
System.out.println(str);

2.创建一个长度是8的字符串数组
使用8个长度是5的随机字符串初始化这个数组
对这个数组进行排序,按照每个字符串的首字母排序(无视大小写)

注1: 不能使用Arrays.sort() 要自己写
注2: 无视大小写,即 Axxxx 和 axxxxx 没有先后顺序

	public static String randomString() {
		char[]cs = new char[5];
		for(int i=0;i<5;) {
			int m = (int )(48+Math.random()*(122-48+1));
				if((m>='0'&&m<='9')||(m>='A'&&m<='Z')||(m>='a'&&m<='z')) {
					cs[i] = (char) m;
					i++;
			    }
		}
		return new String(cs);	
	}
	
	public static void main(String[] args) {
		String[]ss = new String[8];
		System.out.println("原数组:");
		for(int i=0;i<ss.length;i++) {
			ss[i] = randomString();
			System.out.println(ss[i]);	
		}
		
		for(int i = 0;i<ss.length;i++) {
                //冒泡排序
			for(int j = 0;j<ss.length-i-1;j++) {
                        //字符串转化成字符数组
				char cs1[] = ss[j].toCharArray();
				char cs2[] = ss[j+1].toCharArray();
				if(Character.isLetter(cs1[0])) {
                                //如果首字符是字母,就全部转换成大写字母
					cs1[0]=Character.toUpperCase(cs1[0]);
				}
				if(Character.isLetter(cs2[0])) {
					cs2[0]=Character.toUpperCase(cs2[0]);
				}
				if(cs1[0]>cs2[0]) {
					String tmp = ss[j];
					ss[j] = ss[j+1];
					ss[j+1] = tmp;
				}
			}
		}
		System.out.println("现数组:");
		for(int i = 0;i<ss.length;i++) {
			System.out.println(ss[i]);
		}
		
		
		
	}

猜你喜欢

转载自blog.csdn.net/weixin_37893376/article/details/84668212