參考http://how2j.cn/k/number-string/number-string-string/324.htmlhtml
字符串即字符的組合,在Java中,字符串是一個類,因此咱們見到的字符串都是對象
常見建立字符串手段:
1. 每當有一個字面值出現的時候,虛擬機就會建立一個字符串
2. 調用String的構造方法建立一個字符串對象
3. 經過+加號進行字符串拼接也會建立新的字符串對象 git
package character; public class TestString { public static void main(String[] args) { String garen ="蓋倫"; //字面值,虛擬機碰到字面值就會建立一個字符串對象 String teemo = new String("提莫"); //建立了兩個字符串對象 char[] cs = new char[]{'崔','斯','特'}; String hero = new String(cs);// 經過字符數組建立一個字符串對象 String hero3 = garen + teemo;// 經過+加號進行字符串拼接 } }
String 被修飾爲final,因此是不能被繼承的數組
immutable 是指不可改變的
好比建立了一個字符串對象
String garen ="蓋倫";
不可改變的具體含義是指:
不能增長長度
不能減小長度
不能插入字符
不能刪除字符
不能修改字符
一旦建立好這個字符串,裏面的內容 永遠 不能改變
String 的表現就像是一個常量dom
package character; public class TestString { public static void main(String[] args) { String name ="蓋倫"; int kill = 8; String title="超神"; //直接使用+進行字符串鏈接,編碼感受會比較繁瑣,而且維護性差,易讀性差 String sentence = name+ " 在進行了連續 " + kill + " 次擊殺後,得到了 " + title +" 的稱號"; System.out.println(sentence); //格式化字符串 //%s表示字符串,%d表示數字,%n表示換行 String sentenceFormat ="%s 在進行了連續 %d 次擊殺後,得到了 %s 的稱號%n"; String sentence2 = String.format(sentenceFormat, name,kill,title); System.out.println(sentence2); } }
經過下面手段就可以知道字符 a-z A-Z 0-9 所對應的數字的區間了編碼
char c = 'A'; short s = (short) c;
建立一個長度是5的隨機字符串,隨機字符有多是數字,大寫字母或者小寫字母spa
public static String getStr(){ char[] cArr=new char[5]; for (int i=0;i<5;i++){ char c=(char)(Math.random()*(122-48)+48+1); if(Character.isLetterOrDigit(c)){ cArr[i]=c; }else{ i--; } } return String.valueOf(cArr); }
建立一個長度是8的字符串數組
使用8個長度是5的隨機字符串初始化這個數組
對這個數組進行排序,按照每一個字符串的首字母排序(無視大小寫)
注1: 不能使用Arrays.sort() 要本身寫
注2: 無視大小寫,即 Axxxx 和 axxxxx 沒有前後順序 code
public static void sort(){ String[] strArr=new String[8]; System.out.println("排序前"); for(int i=0;i<8;i++){ strArr[i]= getStr(); System.out.println(strArr[i]); } for (int i=0;i<8-1;i++){ for (int j=i+1;j<8;j++){ char c1=strArr[i].charAt(0); char c2=strArr[j].charAt(0); if(Character.isUpperCase(c1)){ c1=Character.toLowerCase(c1); } if(Character.isUpperCase(c2)){ c2=Character.toLowerCase(c2); } if(c1>c2){ String str=strArr[i]; strArr[i]=strArr[j]; strArr[j]=str; } } } System.out.println("排序後"); for(int i=0;i<8;i++){ System.out.println(strArr[i]); } }