String

1、基本java

String類表示的「字符串」。位於java.lang.Object-java.lang.String。數組

java程序中的全部字符串,如 "abc","中國人",都是實現這個類的實例。函數

String沒有子類,不可能被複寫。編碼

字符串是常量,它們的值不能被建立後改變。因爲字符串對象是不可改變的,因此它們能夠被共享spa

 

2、建立字符串的方式:code

一、直接建立,如String s1="abc";對象

這種定義方式最多見。s1是一個類類型變量,它指向對象,"abc"是一個對象。blog

2用new建立,如String s2=new String("abc");索引

 

以上兩種建立方式的區別,s1在內存中只建立了一個對象,s2則是兩個對象(分別是new和"abc")內存

 

建立空字符串的方式:String s1="";或  String s2=new String();

 

3、字符串之間的比較

 ==比較的是字符串對象的內存地址值

equals()比較的是字符串的內容。String類複寫了Object類中的equals方法,定義了本身的獨特肉類,該方法用判斷字符串內容是否相同。

package StringDemo1;

public class StringDemo {

    public static void main(String[] args) {
        
        String s = new String("abc");
        String s1 = "abc";    
        System.out.println(s1.equals(s));//比較的是字符串的內容
        System.out.println(s==s1);//比較的是字符串對象的內存地址值

    }

}

輸出:

true

false

 

當字符串abc建立後,就存在了,另外一個變量s3再指向同一字符串後,就再也不新建立了,而是指向了原來的abc,因此內存地址值同樣。

public class StringDemo {

    public static void main(String[] args) {

        String s1 = "abc";
        String s2 = new String("abc");

        String s3 = "abc";

        System.out.println(s1 == s2);// 兩個對象,地址值不同
        System.out.println(s1 == s3);// s1和s3指向同一個對象

    }

}

輸出:

false
true

 

4、String類經常使用方法——獲取數據

一、int length()  獲取字符串長度

二、int indexOf(int ch)  根據字符獲取在字符串中的第一次出現的位置

三、int indexOf(int ch, int fromIndex)  從指定位置起搜索,獲取字符在字符串的中第一次出現的位置

 

四、int indexOf(String str)  根據子字符串,獲取在字符串中的第一次出現的位置

五、int indexOf(String str, int fromIndex)   從指定位置起搜索,根據子字符串獲取在字符串中的第一次出現的位置

class StringDemoGet
{
    public static void main(String[] args)
    {
        method_get();
    }
    
    public static void method_get()
    {
        String str="Hello World";

        //獲取字符串長度  int length()
        sop(str.length());            //輸出:11


        //根據位置獲取字符  char    charAt(int index) 
        sop(str.charAt(1));            //輸出:e


        //根據字符獲取在字符串中第一次出現的位置     int indexOf(int ch)
        sop(str.indexOf('o'));        //輸出:4
        sop(str.indexOf(100));        //輸出:10。接受ASCII碼錶中字符對應的值
        sop(str.indexOf('f'));        //輸出:-1。找不到時輸出-1。


        //從指定位置起搜索,獲取字符在字符串的中第一次出現的位置 int indexOf(int ch, int fromIndex)
        sop(str.indexOf('o',5));    //輸出:7


        //根據子字符串,獲取在字符串中的第一次出現的位置     int indexOf(String str)
        sop(str.indexOf("lo"));        //輸出:3

        
        //從指定位置起搜索,根據子字符串獲取在字符串中的第一次出現的位置     int indexOf(String str, int fromIndex) 
        sop(str.indexOf("lo",2));    //輸出:3
    }

    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

 

5、String類的經常使用方法—判斷數據

一、boolean isEmpty()  判斷字符串是否爲空。就是判斷長度是否爲0,至關於判斷length()==0。長度爲0返回true,不然爲false

二、boolean contains(CharSequence s)   判斷字符串是否包含字符或字符串。

    注:indexOf(str),用於索引字符串和一次出現的位置,若是-1,側表示字符串中不存在str,因此也能夠用於判斷字符中是否包含。

    if(str.indexof("aa"))!=-1),便可判斷位置,也可判斷是否包含。

三、boolean startsWith(String prefix)   判斷是否以含指定內容開頭

四、boolean endsWith(String suffix)   判斷是否以含指定內容結尾

五、boolean equals(Object anObject)   判斷字符串內容是否相同。複寫了Object類中的equals方法

六、boolea equalsIgnoreCase(String anotherString)  判斷字符串內容是否相同,且忽略大寫小。

 

    public static void method_if()
    {
        String str1="ArrayDemo.java";
        String str2="";
        String str3="ARRAYDEMO.JAVA";

        
        //判斷字符串是否爲空    boolean isEmpty()
        sop(str1.isEmpty());        //輸出:false
        sop(str2.isEmpty());        //輸出:true    


        //判斷字符串是否包含    boolean contains(CharSequence s)
        sop(str1.contains("Demo."));        //輸出:true


        //判斷是否以含指定內容開頭  boolean startsWith(String prefix) 
        sop(str1.startsWith("Array"));            //輸出:true


        //判斷是否以含指定內容結尾    boolean endsWith(String suffix)   
        sop(str1.endsWith(".java"));        //輸出:true


        //判斷字符串內容是否相同。    boolean equals(Object anObject)   
        sop(str1.equals(str3));        //輸出:false


        //判斷字符串內容是否相同,且忽略大寫小。    equalsIgnoreCase(String anotherString)  
        sop(str1.equalsIgnoreCase(str3));        //輸出:true
    }

    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

 

 

6、String類操做——轉換

一、字符數組——>字符串
  構造函數:String(char[])
         String(char[],offset,count),字符數組中的一部分轉成字符串

  靜態方法:static String copyValueOf(char[]);
       static String copyValueOf(char[],offset,count),字符數組中的一部分轉換成字符串

         static String valueOf(char[]);
       static String valueOf(char[],offset,count),字符數組中的一部分轉換成字符串

二、字符串——>字符數組  char[] toCharArray();

三、字節數組——>字符串
  構造函數:String(byte[])
         String(byte[],offset,count),字節數組中的一部分轉成字符串

四、字符串——>字節數組(能夠指定編碼表)  byte[] getBytes()

五、基本數據類型——>字符串
靜態方法:static String valeOf(int);    3+''//String.valueOf(3)
       static String valeOf(double);

五、基本數據類型——>字符串  String valudOf(int)

 

class StringDemoTrans
{
    public static void main(String[] args)
    {
        method_trans();
    }
    
    public static void method_trans()
    {
        char[] arr={'a','b','c','d','e','f','g','h','i'};
//構造函數,字符數組轉成字符串    String(char[])
        sop(new String(arr));                    //輸出:abcdefghi

        //構造函數,字符數組中的一部分轉成字符串 String(char[],offset,count),
        sop(new String(arr,1,5));                //輸出:bcdef


        //靜態方法,字符數組轉成字符串    static String copyValeOf(char[]);
        sop(String.copyValueOf(arr));            //輸出:abcdefghi

        //靜態方法,字符數組中的一部分轉成字符串    static String copyValeOf(char[],offset,count)
        sop(String.copyValueOf(arr,1,3));        //輸出:bcd


        //靜態方法,字符數組轉成字符串    static String valeOf(char[]);
        sop(String.valueOf(arr));            //輸出:abcdefghi

        //靜態方法,字符數組中的一部分轉成字符串    static String valeOf(char[],offset,count)
        sop(String.valueOf(arr,2,3));        //輸出:cde

    }
    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}
class StringDemoTrans
{
    public static void main(String[] args)
    {
        method_trans();
    }
    
    public static void method_trans()
    {

        String s="zxcvbnm"; 


        //字符串——>字符數組    char[] toCharArray();
        char[] chs=s.toCharArray();

        for (int x=1;x<chs.length ;x++ )
        {
            sop(chs[x]);
        }
        
    }
    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

輸出:

x
c
v
b
n
m

 

class StringDemoTrans
{
    public static void main(String[] args)
    {
        method_trans();
    }
    
    public static void method_trans()
    {
        //字節數組——>字符串;
        byte[] bs={97,98,99,100,101,102};
        sop(new String(bs));       //abcdef
        sop(new String(bs,1,3));   //bcd
    }
    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}        

 

 

class StringDemoTrans
{
    public static void main(String[] args)
    {
        method_trans();
    }
    
    public static void method_trans()
    {
        //字符串——>字節數組   byte[] getBytes()
        String s="qwerty";
        byte[] bs=s.getBytes();
        for (int x=1;x<bs.length ;x++ )
        {
            sop(bs[x]);
        }

    }
    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

 

 

7、String類的經常使用方法—替換

一、替換單個字符  String replace(char oldChar, char newChar)   

二、替換字符串     String replace(CharSequence target, CharSequence replacement)    

class StringDemoReplace
{
    public static void main(String[] args)
    {

        String s="Hello java";
        //替換單個字符
        sop(s.replace('H','h'));        //輸出:hellow java
        sop(s.replace('q','h'));        //輸出:Hellow java。哪果原字符不存在,返回的仍是原字符串。
        
        //替換字符串
        sop(s.replace("Hello java","world"));        //輸出:Hellow world
    }

    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

 

 

8、String類的經常使用方法—切割

String[] split(String regex)  

class StringDemoSplit
{
    public static void main(String[] args)
    {

        String s="zhanshan,lisi,wangwu";
        
        String[] arr=s.split(",");

        for (int x=0;x<arr.length ; x++)
        {
            sop(arr[x]);
        }
    }

    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

輸出:

zhanshan
lisi
wangwu

 

 

9、String類的經常使用方法—獲取子串

sbustring(begin) 從指定位置開始開結尾。整串,s.substring(0)。若是角標不存在,則不現字符角標越界異常

sbustring(begin,end) 包含頭,不包含尾。整串,s.substring(0,s.length())

class StringDemoSubstring
{
    public static void main(String[] args)
    {
        method_Substring();
    }
    
    public static void method_Substring()
    {
        String str1="ArrayDemo.java";

        //子串,sbustring(begin)。
        sop(str1.substring(4));            //輸出:yDemo.java

        //子串,sbustring(begin,end)
        sop(str1.substring(3,5));        //輸出:ay
    }

    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

 

 

9、String類的經常使用方法—大小寫轉換、去掉兩端空格、

轉換成大小寫
  String toLowerCase();
  String toUpperCase();

class StringDemoCase
{
    public static void main(String[] args)
    {

        String s="Hello World";
        
//轉成小寫
        sop(s.toLowerCase());    //輸出:hello world
        
        //轉成大寫
        sop(s.toUpperCase());    //輸出:HELLO WORLD
    }

    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

 

去掉兩端多空格

String trim()

class StringDemoTrim
{
    public static void main(String[] args)
    {

        String s="   Hello World   ";
        
        //轉成小寫
        sop(s.trim());    //Hello World
        
    }

    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

 

 

 

class StringDemoCompare
{
    public static void main(String[] args)
    {

        String s1="aba";
        String s2="aba";
        
        sop(s1.compareTo(s2));    //1。至關於s1和s2的ASCII相減。返回結果大於0,s1>s2;等於0,s1=s2;小於0,s1<s2.
        
    }

    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

 

對兩個字符串的天然順序進行比較

int compareTo(string) 返回結果爲整數。多是正數,負數或0。

class StringDemoCompare
{
    public static void main(String[] args)
    {

        String s1="abc";
        String s2="aba";
        
        sop(s1.compareTo(s2));    //1。c-a=2。至關於s1和s2的最前一個不相同的字符的編碼值相減。返回結果大於0,s1>s2;等於0,s1=s2;小於0,s1<s2.
        
    }

    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}
相關文章
相關標籤/搜索