1. 程式人生 > >java之字符串

java之字符串

dig 直接 lan 一個 letter ring 格式化字符串 str ror

參考http://how2j.cn/k/number-string/number-string-string/324.html

創建字符串

字符串即字符的組合,在Java中,字符串是一個類,所以我們見到的字符串都是對象
常見創建字符串手段:
1. 每當有一個字面值出現的時候,虛擬機就會創建一個字符串
2. 調用String的構造方法創建一個字符串對象
3. 通過+加號進行字符串拼接也會創建新的字符串對象

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;// 通過+加號進行字符串拼接 } }

final

String 被修飾為final,所以是不能被繼承的

immutable

immutable 是指不可改變的
比如創建了一個字符串對象
String garen ="蓋倫";
不可改變的具體含義是指:
不能增加長度
不能減少長度
不能插入字符
不能刪除字符
不能修改字符
一旦創建好這個字符串,裏面的內容 永遠 不能改變

String 的表現就像是一個常量

字符串格式化 String.format();

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的隨機字符串,隨機字符有可能是數字,大寫字母或者小寫字母

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 沒有先後順序

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

java之字符串