2017-12-26字符串

字符串的長(zhǎng)度:

String s6 = new String("abcde");
System.out.println("s6.length():" + s1.length());
結(jié)果:5

字符串的特點(diǎn):一旦被賦值,就不能改變,但是引用可以改變。

public class StringDemo {
    public static void main(String[] args) {
        String s = "hello";
        s += "world";
        System.out.println("s:" + s);
結(jié)果:helloworld

String s = new String(“hello”)和 String s = “hello”;的區(qū)別?String字面值對(duì)象和構(gòu)造方法創(chuàng)建對(duì)象的區(qū)別
有。前者會(huì)創(chuàng)建2個(gè)對(duì)象,后者創(chuàng)建1個(gè)對(duì)象。

  • ==:比較引用類型比較的是地址值是否相同
  • equals:比較引用類型默認(rèn)也是比較地址值是否相同,而String類重寫了equals()方法,比較的是內(nèi)容是否相同。
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類的判斷功能:
  • boolean equals(Object obj):比較字符串的內(nèi)容是否相同,區(qū)分大小寫
  • boolean equalsIgnoreCase(String str):比較字符串的內(nèi)容是否相同,忽略大小寫
  • boolean contains(String str):判斷大字符串中是否包含小字符串
  • boolean startsWith(String str):判斷字符串是否以某個(gè)指定的字符串開(kāi)頭
  • boolean endsWith(String str):判斷字符串是否以某個(gè)指定的字符串結(jié)尾
  • boolean isEmpty():判斷字符串是否為空。

注意:
String s = "";//對(duì)象存在,所以可以調(diào)方法
String s = null;//對(duì)象不存在,不能調(diào)方法

String類的獲取功能

  • int length():獲取字符串的長(zhǎng)度。
  • char charAt(int index):獲取指定索引位置的字符
  • int indexOf(int ch):返回指定字符在此字符串中第一次出現(xiàn)處的索引。
    // 為什么這里是int類型,而不是char類型?
    // 原因是:'a'和97其實(shí)都可以代表'a'。如果里面寫char,就不能寫數(shù)字97了
  • int indexOf(String str):返回指定字符串在此字符串中第一次出現(xiàn)處的索引。
  • int indexOf(int ch,int fromIndex):返回指定字符在此字符串中從指定位置后第一次出現(xiàn)處的索引。
  • int indexOf(String str,int fromIndex):返回指定字符串在此字符串中從指定位置后第一次出現(xiàn)處的索引。
  • String substring(int start):從指定位置開(kāi)始截取字符串,默認(rèn)到末尾。
  • String substring(int start,int end):從指定位置開(kāi)始到指定位置結(jié)束截取字符串

/*

  • 需求:統(tǒng)計(jì)一個(gè)字符串中大寫字母字符,小寫字母字符,數(shù)字字符出現(xiàn)的次數(shù)。(不考慮其他字符)
  • 舉例:
  •     "Hello123World"
    
  • 結(jié)果:
  •     大寫字符:2個(gè)
    
  •     小寫字符:8個(gè)
    
  •     數(shù)字字符:3個(gè)
    
  • 分析:
  •     前提:字符串要存在
    
  •     A:定義三個(gè)統(tǒng)計(jì)變量
    
  •         bigCount=0
    
  •         smallCount=0
    
  •         numberCount=0
    
  •     B:遍歷字符串,得到每一個(gè)字符。
    
  •         length()和charAt()結(jié)合
    
  •     C:判斷該字符到底是屬于那種類型的
    
  •         大:bigCount++
    
  •         ?。簊mallCount++
    
  •         數(shù)字:numberCount++
    
  •         這道題目的難點(diǎn)就是如何判斷某個(gè)字符是大的,還是小的,還是數(shù)字的。
    
  •         ASCII碼表:
    
  •             0    48
    
  •             A    65
    
  •             a    97
    
  •         雖然,我們按照數(shù)字的這種比較是可以的,但是想多了,有比這還簡(jiǎn)單的
    
  •             char ch = s.charAt(x);
    
  •             if(ch>='0' && ch<='9') numberCount++
    
  •             if(ch>='a' && ch<='z') smallCount++
    
  •             if(ch>='A' && ch<='Z') bigCount++
    
  •    D:輸出結(jié)果。
    
  • 練習(xí):把給定字符串的方式,改進(jìn)為鍵盤錄入字符串的方式。
    */
    public class StringTest2 {
    public static void main(String[] args) {
    //定義一個(gè)字符串
    String s = "Hello123World";

//定義三個(gè)統(tǒng)計(jì)變量
int bigCount = 0;
int smallCount = 0;
int numberCount = 0;

//遍歷字符串,得到每一個(gè)字符。
for(int x=0; x<s.length(); x++){
char ch = s.charAt(x);

//判斷該字符到底是屬于那種類型的,char類型會(huì)轉(zhuǎn)成int類型
if(ch>='a' && ch<='z'){
smallCount++;
}else if(ch>='A' && ch<='Z'){
bigCount++;
}else if(ch>='0' && ch<='9'){
numberCount++;
}
}

//輸出結(jié)果。
System.out.println("大寫字母"+bigCount+"個(gè)");
System.out.println("小寫字母"+smallCount+"個(gè)");
System.out.println("數(shù)字"+numberCount+"個(gè)");
}
}

String的轉(zhuǎn)換功能:

  • byte[] getBytes():把字符串轉(zhuǎn)換為字節(jié)數(shù)組。
  • char[] toCharArray():把字符串轉(zhuǎn)換為字符數(shù)組。
  • static String valueOf(char[] chs):把字符數(shù)組轉(zhuǎn)成字符串。
  • static String valueOf(int i):把int類型的數(shù)據(jù)轉(zhuǎn)成字符串。
    //注意:String類的valueOf方法可以把任意類型的數(shù)據(jù)轉(zhuǎn)成字符串。
  • String toLowerCase():把字符串轉(zhuǎn)成小寫。
  • String toUpperCase():把字符串轉(zhuǎn)成大寫。
  • String concat(String str):把字符串拼接。

http://www.cnblogs.com/kamibaba/p/8116281.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容