package exe.string; import java.io.UnsupportedEncodingException; import java.util.Arrays; public class StringDemo { /** * @Title * @Description * @param * @return void * @pages * @throws */ public static void main(String[] args) { // TODO Auto-generated method stub String str1 = "abcdefg"; String str2 = "abcdefgh"; String str3 = "abcd"; String str4 = "ABCDEFG"; String str5 = "exe.java"; String str6 = new String("abcdefg"); String str7 = "計算機"; String str8 = "我是歌手;第二季;名單"; String str9 = "abcdbcd"; String str10 = "123456"; String str11 = "ABCDEgghijklmn"; String str12 = " abcd efg "; // charAt()方法 按照索引尋值 char c = str1.charAt(3); System.out.println("按照索引尋值:"+c); /* * compareTo方法 *該方法的做用是比較兩個字符串的大小,比較的原理是依次比較每一個字符的字符編碼。 *首先比較兩個字符串的第一個字符,若是第一個字符串的字符編碼大於第二個的字符串的字符編碼,則返回大於0的;, *若是小於則返回小於0的值,若是相等則比較後續的字符,若是兩個字符串中的字符編碼徹底相同則返回0。 */ int value = str1.compareTo(str2); int value1 = str1.compareTo(str3); System.out.println("比較字符串str1 and str2的大小:"+value); System.out.println("比較字符串str1 和 str3的大小:"+value1); /* * 在String類中還存在一個相似的方法compareToIgnoreCase,這個方法是忽略字符的大小寫進行比較,比較的規則和compareTo同樣。 */ int value2 = str1.compareToIgnoreCase(str4); System.out.println("比較大小寫字符串的大小:"+value2); /* * concat 方法 * 是兩個字符串鏈接,造成新的字符串 */ String s = str1.concat(str4); System.out.println("在str1字符串的末尾加上str4的字符串:"+s); /* * endsWith方法 * 該方法的做用是判斷字符串是否以某個字符串結尾,若是以對應的字符串結尾,則返回true */ boolean b = str5.endsWith("java"); System.out.println("字符串結尾爲java?"+b); /* * equals方法 * 該方法的做用是判斷兩個字符串對象的內容是否相同。若是相同則返回true,不然返回false。 */ b oolean bb = str1.equals(str6); System.out.println("str1 and str6 相等?"+bb); boolean bbb = (str1==str6); System.out.println("str1 and str6 相等?"+bbb); /* * getBytes方法 *該方法的做用是將字符串轉換爲對應的byte數組,從而便於數據的存儲和傳輸。 */ byte[] by; try { by = str7.getBytes("gb2312"); String st = new String(by);// 輸出數組要轉換成字符串得以輸出 System.out.println("字符串與String轉換:"+st); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } /*indexOf方法 *該方法的做用是查找特定字符或字符串在當前字符串中的起始位置,若是不存在則返回-1 */ int ss = str1.indexOf('b'); System.out.println("b所在字符串中的起始位置:"+ss); //固然,也能夠從特定位置之後查找對應的字符,例如: int index = str1.indexOf('d',4); System.out.println(index); //另一個相似的方法是lastIndexOf方法,其做用是從字符串的末尾開始向前查找第一次出現的規定的字符或字符串, int as = str2.lastIndexOf('g'); System.out.println(as); //length 方法 字符串長度 int len = str1.length(); System.out.println("字符串的長度:"+len); /*replace方法 *該方法的做用是替換字符串中全部指定的字符,而後生成一個新的字符串。通過該方法調用之後,原來的字符串不發生改變。 *split('b',2)該代碼的做用是將字符串s最多拆分紅包含2個字符串數組. *若是第二個參數爲負數,則拆分出儘量多的字符串,包括尾部的空字符串也將被保留。 */ String s1 = str1.replace('d', 'n'); System.out.println("新字符串:"+s1); String sss[]= str8.split(";"); for(int i=0;i<sss.length;i++){ System.out.println("用replace獲得新字符串: "+sss[i]); } String sss1[] = str9.split("b",2);//該代碼的做用是將字符串s最多拆分紅包含2個字符串數組 for(int i=0;i<sss1.length;i++) System.out.println("字符串被分紅兩個:"+sss1[i]); //startWith 方法 和 endWith類似 判斷是否以給定字符串開頭 boolean sss2 = str10.startsWith("12"); System.out.println("是否以12開頭:"+sss2); //substring方法 //該方法的做用是取字符串中的「子串」,所謂「子串」即字符串中的一部分 String ss1 = str10.substring(2); System.out.println("獲得的子串爲:"+ss1); String ss2 = str10.substring(2, 5); System.out.println("獲得的子串爲:"+ss2); //下面是一個簡單的應用代碼,該代碼的做用是輸出任意一個字符串的全部子串。 int len9 = str9.length(); for(int begin = 0;begin<len-1;begin++){ for(int end=begin+1;end<len;end++){ System.out.println(str9.substring(begin,end)); } } // toCharArray 方法 將字符串轉換爲相應數組 char[] cc = str10.toCharArray(); String ss3 = new String(cc); System.out.println("獲得的字符串:"+ss3); //toLowerCase方法 該方法的做用是將字符串中全部大寫字符都轉換爲小寫。 String ss4 = str11.toLowerCase(); System.out.println("大寫轉換成小寫:"+ss4); //toUpperCase方法 將字符串小寫轉換成大寫 String ss5 = str11.toUpperCase(); System.out.println("小寫轉換成大寫:"+ss5); //trim方法 //該方法的做用是去掉字符串開始和結尾的全部空格,而後造成一個新的字符串。該方法不去掉字符串中間的空格。 String ss6 = str12.trim(); System.out.println("去掉開頭和結尾的空格:"+ss6); //valueOf方法 //該方法的做用是將其它類型的數據轉換爲字符串類型。須要注意的是,基本數據和字符串對象之間不能使用之前的強制類型轉換的語法進行轉換。 //介紹一個簡單的應用,判斷一個天然數是幾位數字的邏輯代碼以下: String ss7 = String.valueOf(str10); int len2 = ss7.length(); System.out.println("位數爲:"+len2); } } 答案: 按照索引尋值:d 比較字符串str1 and str2的大小:-1 比較字符串str1 和 str3的大小:3 比較大小寫字符串的大小:0 在str1字符串的末尾加上str4的字符串:abcdefgABCDEFG 字符串結尾爲java?true str1 and str6 相等?true str1 and str6 相等?false 字符串與String轉換:計算機 b所在字符串中的起始位置:1 -1 6 字符串的長度:7 新字符串:abcnefg 用replace獲得新字符串: 我是歌手;第二季;名單 字符串被分紅兩個:a 字符串被分紅兩個:cdbcd 是否以12開頭:true 獲得的子串爲:3456 獲得的子串爲:345 a ab abc abcd abcdb abcdbc b bc bcd bcdb bcdbc c cd cdb cdbc d db dbc b bc c 獲得的字符串:123456 大寫轉換成小寫:abcdegghijklmn 小寫轉換成大寫:ABCDEGGHIJKLMN 去掉開頭和結尾的空格:abcd efg 位數爲:6