JAVA字串練習(一)
阿新 • • 發佈:2018-12-01
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]); } }