12-02 java String類

來源:互聯網
上載者:User

標籤:編譯   不能   style   string類   功能   字元數組   dem   case   相同   

String構造方法

package cn.itcast_01;/* * 字串:就是由多個字元組成的一串資料。也可以看成是一個字元數組。 * 通過查看API,我們可以知道 *         A:字串字面值"abc"也可以看成是一個字串對象。 *         B:字串是常量,一旦被賦值,就不能被改變。 *  * 構造方法: *         public String():空構造 *        public String(byte[] bytes):把位元組數組轉成字串 *        public String(byte[] bytes,int index,int length):把位元組數組的一部分轉成字串 *        public String(char[] value):把字元數組轉成字串 *        public String(char[] value,int index,int count):把字元數組的一部分轉成字串 *        public String(String original):把字串常量值轉成字串 * * 字串的方法: *         public int length():返回此字串的長度。 */public class StringDemo {    public static void main(String[] args) {        // public String():空構造        String s1 = new String();        System.out.println("s1:" + s1);        System.out.println("s1.length():" + s1.length());        System.out.println("--------------------------");        //s1:        //s1.length():0        // public String(byte[] bytes):把位元組數組轉成字串        byte[] bys = { 97, 98, 99, 100, 101 };        String s2 = new String(bys);        System.out.println("s2:" + s2);//abcde        System.out.println("s2.length():" + s2.length());//        System.out.println("--------------------------");        // public String(byte[] bytes,int index,int length):把位元組數組的一部分轉成字串        // 我想得到字串"bcd"        String s3 = new String(bys, 1, 3);        System.out.println("s3:" + s3);        System.out.println("s3.length():" + s3.length());        System.out.println("--------------------------");        // public String(char[] value):把字元數組轉成字串        char[] chs = { ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘愛‘, ‘林‘, ‘親‘ };        String s4 = new String(chs);        System.out.println("s4:" + s4);        System.out.println("s4.length():" + s4.length());        System.out.println("--------------------------");        // public String(char[] value,int index,int count):把字元數組的一部分轉成字串        String s5 = new String(chs, 2, 4);        System.out.println("s5:" + s5);        System.out.println("s5.length():" + s5.length());        System.out.println("--------------------------");                //public String(String original):把字串常量值轉成字串        String s6 = new String("abcde");        System.out.println("s6:" + s6);        System.out.println("s6.length():" + s6.length());        System.out.println("--------------------------");                //字串字面值"abc"也可以看成是一個字串對象。        String s7 = "abcde";        System.out.println("s7:"+s7);        System.out.println("s7.length():"+s7.length());    }}

字串的特點:一旦被賦值,就不能改變。

但是引用可以改變

package cn.itcast_02;/* * 字串的特點:一旦被賦值,就不能改變。 */public class StringDemo {    public static void main(String[] args) {        String s = "hello";        s += "world";        System.out.println("s:" + s); // helloworld    }}

圖解:

 

String s = new String(“hello”)和 String s = “hello”;的區別?

 String字面值對象和構造方法建立對象的區別

package cn.itcast_02;/* * String s = new String(“hello”)和String s = “hello”;的區別? * 有。前者會建立2個對象,後者建立1個對象。 *  * ==:比較參考型別比較的是地址值是否相同 * equals:比較參考型別預設也是比較地址值是否相同,而String類重寫了equals()方法,比較的是內容是否相同。 */public class StringDemo2 {    public static void main(String[] args) {        String s1 = new String("hello");        String s2 = "hello";        System.out.println(s1 == s2);// false        System.out.println(s1.equals(s2));// true    }}

 

圖解:

 

      String s5 = "hello";        String s6 = "hello";        System.out.println(s5 == s6);// 字串字面量,直接從記憶體找,所以true        System.out.println(s5.equals(s6));// true

 

package cn.itcast_02;/* * 看程式寫結果 * 字串如果是變數相加,先開空間,在拼接。 * 字串如果是常量相加,是先加,然後在常量池找,如果有就直接返回,否則,就建立。 */public class StringDemo4 {    public static void main(String[] args) {        String s1 = "hello";        String s2 = "world";        String s3 = "helloworld";        System.out.println(s3 == s1 + s2);// false。字串如果是變數相加,先開空間,再拼接。        System.out.println(s3.equals((s1 + s2)));// true        System.out.println(s3 == "hello" + "world");//true。字串如果是常量相加,是先加,然後在常量池找,如果有就直接返回,否則,就建立。        System.out.println(s3.equals("hello" + "world"));// true        // 通過反編譯看源碼,我們知道這裡已經做好了處理。        // System.out.println(s3 == "helloworld");        // System.out.println(s3.equals("helloworld"));    }}

String類的判斷功能:

package cn.itcast_03;/* * String類的判斷功能: * boolean equals(Object obj):比較字串的內容是否相同,區分大小寫 * boolean equalsIgnoreCase(String str):比較字串的內容是否相同,忽略大小寫 * boolean contains(String str):判斷大字串中是否包含小字串 * boolean startsWith(String str):判斷字串是否以某個指定的字串開頭 * boolean endsWith(String str):判斷字串是否以某個指定的字串結尾 * boolean isEmpty():判斷字串是否為空白。 *  * 注意: *         字串內容為空白和字串對象為空白。 *         String s = "";//對象存在,所以可以調方法 *         String s = null;//對象不存在,不能調方法 */public class StringDemo {    public static void main(String[] args) {        // 建立字串對象        String s1 = "helloworld";        String s2 = "helloworld";        String s3 = "HelloWorld";        // boolean equals(Object obj):比較字串的內容是否相同,區分大小寫        System.out.println("equals:" + s1.equals(s2));        System.out.println("equals:" + s1.equals(s3));        System.out.println("-----------------------");        // boolean equalsIgnoreCase(String str):比較字串的內容是否相同,忽略大小寫        System.out.println("equals:" + s1.equalsIgnoreCase(s2));        System.out.println("equals:" + s1.equalsIgnoreCase(s3));        System.out.println("-----------------------");        // boolean contains(String str):判斷大字串中是否包含小字串        System.out.println("contains:" + s1.contains("hello"));        System.out.println("contains:" + s1.contains("hw"));        System.out.println("-----------------------");        // boolean startsWith(String str):判斷字串是否以某個指定的字串開頭        System.out.println("startsWith:" + s1.startsWith("h"));        System.out.println("startsWith:" + s1.startsWith("hello"));        System.out.println("startsWith:" + s1.startsWith("world"));        System.out.println("-----------------------");        // 練習:boolean endsWith(String str):判斷字串是否以某個指定的字串結尾這個自己玩        // boolean isEmpty():判斷字串是否為空白。        System.out.println("isEmpty:" + s1.isEmpty());        String s4 = "";        String s5 = null;        System.out.println("isEmpty:" + s4.isEmpty());        // NullPointerException        // s5對象都不存在,所以不能調用方法,null 指標異常//        System.out.println("isEmpty:" + s5.isEmpty());            }}

 

12-02 java String類

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.