1. 程式人生 > 其它 >String中的常用方法

String中的常用方法

public class StringMethodTest {

/*

替換:
String replace(char oldChar, char newChar):返回一個新的字串,它是通過用 newChar 替換此字串中出現的所有 oldChar 得到的。
String replace(CharSequence target, CharSequence replacement):使用指定的字面值替換序列替換此字串所有匹配字面值目標序列的子字串。
String replaceAll(String regex, String replacement):使用給定的 replacement 替換此字串所有匹配給定的正則表示式的子字串。
String replaceFirst(String regex, String replacement):使用給定的 replacement 替換此字串匹配給定的正則表示式的第一個子字串。
匹配:
boolean matches(String regex):告知此字串是否匹配給定的正則表示式。
切片:
String[] split(String regex):根據給定正則表示式的匹配拆分此字串。
String[] split(String regex, int limit):根據匹配給定的正則表示式來拆分此字串,最多不超過limit個,如果超過了,剩下的全部都放到最後一個元素中。

 */
@Test
public void test4(){
    String str1 = "北京尚矽谷教育北京";
    String str2 = str1.replace('北', '東');

    System.out.println(str1);
    System.out.println(str2);


    String str3 = str1.replace("北京", "上海");
    System.out.println(str3);

    System.out.println("*************************");
    String str = "12hello34world5java7891mysql456";
    //把字串中的數字替換成,,如果結果中開頭和結尾有,的話去掉
    String string = str.replaceAll("\\d+", ",").replaceAll("^,|,$", "");
    System.out.println(string);

    System.out.println("*************************");
    str = "12345";
    //判斷str字串中是否全部有數字組成,即有1-n個數字組成
    boolean matches = str.matches("\\d+");
    System.out.println(matches);
    String tel = "0571-4534289";
    //判斷這是否是一個杭州的固定電話
    boolean result = tel.matches("0571-\\d{7,8}");
    System.out.println(result);


    System.out.println("*************************");
    str = "hello|world|java";
    String[] strs = str.split("\\|");
    for (int i = 0; i < strs.length; i++) {
        System.out.println(strs[i]);
    }
    System.out.println();
    str2 = "hello.world.java";
    String[] strs2 = str2.split("\\.");
    for (int i = 0; i < strs2.length; i++) {
        System.out.println(strs2[i]);
    }

}

/*

boolean endsWith(String suffix):測試此字串是否以指定的字尾結束
boolean startsWith(String prefix):測試此字串是否以指定的字首開始
boolean startsWith(String prefix, int toffset):測試此字串從指定索引開始的子字串是否以指定字首開始

boolean contains(CharSequence s):當且僅當此字串包含指定的 char 值序列時,返回 true
int indexOf(String str):返回指定子字串在此字串中第一次出現處的索引
int indexOf(String str, int fromIndex):返回指定子字串在此字串中第一次出現處的索引,從指定的索引開始
int lastIndexOf(String str):返回指定子字串在此字串中最右邊出現處的索引
int lastIndexOf(String str, int fromIndex):返回指定子字串在此字串中最後一次出現處的索引,從指定的索引開始反向搜尋

注:indexOf和lastIndexOf方法如果未找到都是返回-1

 */
@Test
public void test3(){
    String str1 = "hellowworld";
    boolean b1 = str1.endsWith("rld");
    System.out.println(b1);

    boolean b2 = str1.startsWith("He");
    System.out.println(b2);

    boolean b3 = str1.startsWith("ll",2);
    System.out.println(b3);

    String str2 = "wor";
    System.out.println(str1.contains(str2));

    System.out.println(str1.indexOf("lol"));

    System.out.println(str1.indexOf("lo",5));

    String str3 = "hellorworld";

    System.out.println(str3.lastIndexOf("or"));
    System.out.println(str3.lastIndexOf("or",6));

    //什麼情況下,indexOf(str)和lastIndexOf(str)返回值相同?
    //情況一:存在唯一的一個str。情況二:不存在str
}


/*

int length():返回字串的長度: return value.length
char charAt(int index): 返回某索引處的字元return value[index]
boolean isEmpty():判斷是否是空字串:return value.length == 0
String toLowerCase():使用預設語言環境,將 String 中的所有字元轉換為小寫
String toUpperCase():使用預設語言環境,將 String 中的所有字元轉換為大寫
String trim():返回字串的副本,忽略前導空白和尾部空白
boolean equals(Object obj):比較字串的內容是否相同
boolean equalsIgnoreCase(String anotherString):與equals方法類似,忽略大小寫
String concat(String str):將指定字串連線到此字串的結尾。 等價於用“+”
int compareTo(String anotherString):比較兩個字串的大小
String substring(int beginIndex):返回一個新的字串,它是此字串的從beginIndex開始擷取到最後的一個子字串。
String substring(int beginIndex, int endIndex) :返回一個新字串,它是此字串從beginIndex開始擷取到endIndex(不包含)的一個子字串。

 */
@Test
public void test2() {
    String s1 = "HelloWorld";
    String s2 = "helloworld";
    System.out.println(s1.equals(s2));
    System.out.println(s1.equalsIgnoreCase(s2));

    String s3 = "abc";
    String s4 = s3.concat("def");
    System.out.println(s4);

    String s5 = "abc";
    String s6 = new String("abe");
    System.out.println(s5.compareTo(s6));//涉及到字串排序

    String s7 = "北京尚矽谷教育";
    String s8 = s7.substring(2);
    System.out.println(s7);
    System.out.println(s8);

    String s9 = s7.substring(2, 5);
    System.out.println(s9);
}

@Test
public void test1() {
    String s1 = "HelloWorld";
    System.out.println(s1.length());
    System.out.println(s1.charAt(0));
    System.out.println(s1.charAt(9));

// System.out.println(s1.charAt(10));
// s1 = "";
System.out.println(s1.isEmpty());

    String s2 = s1.toLowerCase();
    System.out.println(s1);//s1不可變的,仍然為原來的字串
    System.out.println(s2);//改成小寫以後的字串

    String s3 = "   he  llo   world   ";
    String s4 = s3.trim();
    System.out.println("-----" + s3 + "-----");
    System.out.println("-----" + s4 + "-----");
}

}

會當凌絕頂,一覽眾山小