1. 程式人生 > >JAVA字串練習(一)

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]);
		}
		
		
		
	}