二、我是菜鳥_6.Java字符串

字符串在開發(fā)中的重要程度不言而喻,必會而且要精通,其中帶來的好處只有自己才清楚。

一、創(chuàng)建字符串

  1. 創(chuàng)建一個空字符串
    //    創(chuàng)建一個空字符串
    String str1 = new String();
  1. 用一個字符數(shù)組創(chuàng)建一個字符串 String(char[] c)
      char[] c = new char[] {'a','b','c','d','e','f','g'};
      String str2 = new String(c);
      System.out.println(str2);

3.提取字符數(shù)組中的一部分創(chuàng)建一個字符串對象 String(char[] c,int offset, int length)

        //  3個參數(shù)的意思:(字符數(shù)組的名字,起始索引,長度)       
    char[] c2 = new char[] {'h','a','h','n','i','c','e','i','o','s'};
    String str3 = new String(c2, 3, 4); 
    System.out.println(str3);

二、字符串的基本操作

  1. 連接字符串
      String str4 = new String("Hello");
      String str5 = new String("World!");
      System.out.println(str4 + " " + str5);
  1. 字符串連接其他類型
//  25是數(shù)值類型的數(shù)據(jù),在使用‘+’進行連接操作時,會將25轉(zhuǎn)化為String類型 "25"
    String str6 = new String("我今年");
    System.out.println(str6 + 25 + "歲了!");
  1. 獲取字符串的長度
//  值得注意的是,如果字符串中有空格,每一個空格也算作一個長度
    int strLength = str6.length();
    System.out.println(strLength);
  1. 獲取指定字符的索引位置
//  有兩個方法可以獲取字符的索引,indexOf()和lastIndexOf()
    String str7 = new String("haha,very interesting.");
    //  indexOf()方法取得第一次出現(xiàn)某個字符的位置
    int firstIndex = str7.indexOf('v');
    System.out.println("在str7中,字符‘V’第一次出現(xiàn)的位置索引為:" + firstIndex);
    int lastIndex = str7.lastIndexOf('t');
    System.out.println("在str7中,字符‘t’最后一次出現(xiàn)的位置索引為:" + lastIndex);
    //  如果被搜索的字符串中沒有這個字符,那么返回-1
    int SearchIndex = str7.indexOf('b');
    System.out.println(SearchIndex);
  1. 獲取指定索引位置上的字符 charAt()
//  注意索引的大小,絕對不能大于字符串的長度-1,如果大于長度會報java.lang.StringIndexOutOfBoundsException異常
    String str8 = new String("that's easy");
    System.out.println(str8.charAt(4));
  1. 除去字符串的空格,2種方法,一種是除去字符串前部和尾部的空格,另一種是除去字符串中全部的空格
         String str9 = " I'm fine.    ";
     // 除去前部和尾部的空格      str.trim();
    System.out.println(str9.trim());
    //  除去字符串中所有的空格  
    //  StringTokenizer(String str, String delim) str表示要除去空格的字符串,delim表示從str中取出的字符
    StringTokenizer st = new StringTokenizer(str9, " ");
    StringBuffer sb = new StringBuffer();   //  定義字符串緩存對象
    int i = 1;
    while(st.hasMoreTokens()){
        i++;
        sb.append(st.nextToken());  //  向字符串生成器中追加內(nèi)容
    }
    System.out.println("去掉所有空格后的str9:" + sb.toString());
    //  replaceAll()
    String str10 = new String(" jk  fld jkfd jfk     jsdf");
    str10 = str10.replaceAll(" ", "");
    System.out.println(str10);
  1. 替換字符串
//  用一個新的字符串替換原來字符串的指定的子字符串 str.replace(String regex, String replacement)
    String s = new String("bad bad study");
    String s2 = s.replace("bad", "good");
    System.out.println(s2); 
    
    //  如果只想替換第一個匹配的子字符串
    String s3 = s.replaceFirst("bad", "good");
    System.out.println(s3); 
    //  假如有要替換的字符串在原字符串有多個,可以使用for循環(huán)執(zhí)行str.replaceFirst(strold, strnew);
  1. 判斷字符串是否相等
//  2中方法,equals() 和 equalsIgnoreCase()
    //  equals() 嚴格區(qū)分大小寫,在此情況下仍有相同的字符和長度時,結(jié)果為true,否則為false。
    String s4 = new String("nice");
    boolean result = s4.equals("nice");
    System.out.println(result);

        //  equalsIgnoreCase()  在忽略大小寫的情況下,如果仍有相同的字符和長度時,結(jié)果為true,否則為false。
    String s5 = new String("NICE");
    boolean result2 = s5.equalsIgnoreCase(s4);
    System.out.println(result2);
    //  ==在比較字符串時,比較的是內(nèi)存位置,不建議使用。在數(shù)值型中可以使用。 
  1. 判斷字符串是不是以指定的內(nèi)容開始或者結(jié)尾
//  判斷字符串是不是以 "abc" 開頭
    String s6 = new String("abcqweriop");
    System.out.println(s6 + "是否以abc開頭的字符串?" + s6.startsWith("abc"));        
    //  判斷字符串是不是以 "op" 結(jié)尾       
    System.out.println(s6 + "是否以op結(jié)尾的字符串?" + s6.endsWith("op"));
  1. 字母大小寫轉(zhuǎn)換
        String s7 = new String("HfdkDRTvcC");
    //  全部轉(zhuǎn)為小寫
    System.out.println(s7 + "全部轉(zhuǎn)換為小寫字母:" + s7.toLowerCase());
    //  全部轉(zhuǎn)為大寫
    System.out.println(s7 + "全部轉(zhuǎn)換為大寫字母:" + s7.toUpperCase());
    //  以上兩個方法在轉(zhuǎn)換時,對字符串中的數(shù)字和其他字符不做改變
  1. 分割字符串 str.split(String s);
//  用s來分割str,別把分割后的結(jié)果返回一個字符串?dāng)?shù)組
    String s8 = new String("qwe,rty,uio,p[]");
    String[] sArr = s8.split(",");
    for (String ss : sArr) {
        System.out.print(ss);
    }
    System.out.println();
    //  split()的另外一種重載
    //  str.split(String sign, int limit); sign為分隔符,limit為拆分的份數(shù)
    //  例如,分割為2份,只去掉一個‘,’。分割為3份,去掉2個‘,’
    String[] strLimit = s8.split(",", 2);
    for (String ss : strLimit) {
        System.out.print(ss);
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,637評論 18 399
  • 本文轉(zhuǎn)自:http://www.cnblogs.com/lidabo/p/5225868.html 1)字符串操作...
    XiaohuiLI閱讀 9,682評論 0 0
  • 一、字符串操作 strcpy(p, p1) 復(fù)制字符串 strncpy(p, p1, n) 復(fù)制指定長度字符串 s...
    JaiUnChat閱讀 1,748評論 0 7
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 4,187評論 1 10
  • 一個老婦人,她得了急病,當(dāng)然,即便她不得病,也并不是說一切都會美好起來。 只是這疾病更加深了她悲慘的痛苦,她的半個...
    沐陽燕閱讀 414評論 1 3

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