iT邦幫忙

2022 iThome 鐵人賽

DAY 23
0

Java除了使用+號連接字串,還可以使用字面常數產生String物件。

package com.mycompany.testfour;

public class testFour {
    public static void main(String[] args) {
        String tire="這是一個輪胎。";
        
        System.out.println(tire);
    }
}

https://ithelp.ithome.com.tw/upload/images/20221008/20152201WlVAISZS3c.png

Java會產生一個String物件代表相同內容的字面常數字串,tire1與tire的內容一樣,都是指向同一個物件,所以tire==tire1會出現true,但tire2有建立一個物件,所以tire==tire2就會是false。

package com.mycompany.testfour;

public class testFour {
    public static void main(String[] args) {
        String tire="這是一個輪胎。";
        String tire1="這是一個輪胎。";
        String tire2= new String("這是一個輪胎。");
        
        System.out.println((tire==tire1));
        System.out.println((tire==tire2));
        System.out.println((tire1==tire2));
    }
}

https://ithelp.ithome.com.tw/upload/images/20221008/20152201L3mmT0KSK8.png

Java語言對String類別提供許多有用的方法:

equals()
String類別中的equals()方法,可以比對字串的內容是否一致。

package com.mycompany.testfour;

public class testFour {
    public static void main(String[] args) {
        String tire="這是一個輪胎。";
        String tire1="這是一個輪胎。";
        String tire2= new String("這是一個輪胎。");
        
        System.out.println(tire.equals(tire1));
        System.out.println(tire.equals(tire2));
        System.out.println(tire1.equals(tire2));
    }
}

https://ithelp.ithome.com.tw/upload/images/20221008/20152201uew0TYusNf.png

因為是比對字串內容,所以比對完的結果都是true。

自動轉型(Implicit Conversion)
使用連接運算(+號)時,如果有非String物件,Java會試著轉為String物件,會呼叫toString()轉換。

package com.mycompany.testfour;

class Car{
    String myCar;
    public Car(String s) {myCar=s;}
    public String toString(){return myCar;}
}

public class testFour {
    public static void main(String[] args) {
        Car bus= new Car("公車");
        System.out.println("這是一台"+bus);
    }
}

https://ithelp.ithome.com.tw/upload/images/20221008/201522019tKqSAE3Aj.png

charAt(整數)
括號中的數為索引碼,就像陣列,以0開始算字元。

package com.mycompany.testfour;

public class testFour {
    public static void main(String[] args) {
        String cat= "這是一隻很可愛的貓。";
        System.out.println(cat.charAt(0));
        System.out.println(cat.charAt(3));
        System.out.println(cat.charAt(8));
    }
}

https://ithelp.ithome.com.tw/upload/images/20221008/20152201wNnmoCSGav.png

compareTo(字串)
一字串與括號中的另一字串從索引碼0以標準萬國碼(Uni-code)逐字比較大小,括號中的字串比較大就回傳負數,完全相同回傳0,比較小回傳正數。

package com.mycompany.testfour;

public class testFour {
    public static void main(String[] args) {
        String cat= "a cute cat。";
        String dog= "a cute dog";
        System.out.println(cat.compareTo(dog));
    }
}

https://ithelp.ithome.com.tw/upload/images/20221008/20152201NpB6LuJ7aq.png

除了這些,還有很多種方法。

Boolean endsWith(String)
傳回是否以指定的字串內容結尾。

Int length()
傳回字串長度。

int indexOf(int)
傳回字元在字串第一次出現的索引碼,沒有出現回傳-1。

參考資料:
最新java程式語言第六版


上一篇
資訊隱藏
下一篇
StringBuffer與規則表示法
系列文
大學每日任務:攝取新知識及學習紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言