String常用方法解析

package com.javaBase.string;

import java.util.Locale;

/**
 * 〈一句话功能简述〉;
 * 〈String类中常用的方法整理〉
 *
 * @author 
 * @see [相关类/方法](可选)
 * @since [产品/模块版本] (可选)
 */
public class CommonStringMethod {

    public static void main(String[] args) {
//        testLength();
//        testChartAt();
//        testToCharyArray();
//        testIndexOf();
//        testToUpperCaseAndToLowerCase();
//        testSplit();
//        testTrim();
//        testSubstring();
//        testEqualsIgnoreCase();
//        testContains();
//        testStartsWithAndEndsWith();
        testReplaceAll();
    }

    /**
     * length() 返回此字符串的长度。长度等于字符串中 Unicode 代码单元的数量。
     * 返回值为 int 类型。得到一个字符串的字符个数(中、英、空格、转义字符皆为字符,计入长度)
     */
    public static void testLength() {
        String str = "123456 	 
";
        System.out.println(str.length());
    }

    /**
     * charAt(index);返回指定索引处的 char 值。索引范围为从 0 到 length() - 1。序列的第一个 char 值位于索引 0 处,
     * 第二个位于索引 1 处,依此类推,这类似于数组索引。
     */
    public static void testChartAt() {
        String str = "123456";
        System.out.println(str.charAt(0));
        System.out.println(str.charAt(1));
    }

    /**
     * toCharArray();将此字符串转换为一个新的字符数组。
     */
    public static void testToCharyArray() {
        String str = "123456";
        char[] arr = str.toCharArray();
        for (int i = 0; i < arr.length; i++)
            System.out.print(arr[i]);
    }

    /**
     * indexOf(int ch);返回指定字符在此字符串中第一次出现处的索引
     * indexOf(int ch, int fromIndex);返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索
     * indexOf(String str);返回指定子字符串在此字符串中第一次出现处的索引
     * indexOf(String str, int fromIndex);返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始
     */
    public static void testIndexOf() {
        String str = "123456";
        System.out.print(str.indexOf('1'));
        System.out.print(str.indexOf('1',1));
        System.out.print(str.indexOf("1"));
        System.out.print(str.indexOf("1",1));
    }

    /**
     * toLowerCase();使用默认语言环境的规则将此 String 中的所有字符都转换为小写
     * toLowerCase(Locale locale);使用给定 Locale 的规则将此 String 中的所有字符都转换为小写
     * toUpperCase();使用默认语言环境的规则将此 String 中的所有字符都转换为大写
     * toUpperCase(Locale locale);使用给定 Locale 的规则将此 String 中的所有字符都转换为大写
     */
    public static void testToUpperCaseAndToLowerCase() {
        String str = "123456";
        System.out.println(str.toUpperCase());  //123456
        String str2 = "奥术大师多";
        System.out.println(str2.toUpperCase());  //奥术大师多
        String str3 = "abcA";
        System.out.println(str3.toUpperCase());
        System.out.println(str3.toUpperCase(Locale.CANADA_FRENCH)); //了解下local类
        System.out.println(str3.toLowerCase());
    }

    /**
     * split();根据给定正则表达式的匹配拆分此字符串。
     */
    public static void testSplit() {
        String str = "123456";
        String[] arr = str.split(",");
        for (int i=0;i<arr.length;i++)
            System.out.println(arr[i]);
    }

    /**
     * equals(Object anObject);将此字符串与指定的对象比较。当且仅当该参数不为 null,
     * 并且是与此对象表示相同字符序列的 String 对象时,结果才为 true
     */
    public static void testEquals() {
        String str = "123456";
        System.out.println("123".equals(str));
    }

    /**
     * trim();返回字符串的副本,忽略前导空白和尾部空白。
     * replace(char oldChar, char newChar) ;返回一个新的字符串,它是通过用 newChar
     * 替换此字符串中出现的所有 oldChar 得到的。
     */
    public static void testTrim() {
        String str = " 12 3456 ";
        System.out.println(str.trim());  //12 3456
        System.out.println(str.replace(" ","")); //123456
    }

    /**
     * substring(int beginIndex);返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,
     * 直到此字符串末尾。
     * substring(int beginIndex,int endIndex);返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的
     * beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。
     */
    public static void testSubstring() {
        String str = "123456";
        System.out.println(str.substring(2));
        System.out.println(str.substring(2,4));  //左闭右开
    }

    /**
     * equalsIgnoreCase(String anotherString);将此 String 与另一个 String 比较,不考虑大小写
     */
    public static void testEqualsIgnoreCase() {
        String str = "abc";
        System.out.println("AbC".equalsIgnoreCase(str));
    }

    /**
     * contains(CharSequence s);当且仅当此字符串包含指定的 char 值序列时,返回 true。
     */
    public static void testContains() {
        String str = "abcdef123";
        System.out.println(str.contains("f12"));
    }

    /**
     * startsWith(String prefix);测试此字符串是否以指定的前缀开始。
     * endsWith(String suffix) ;测试此字符串是否以指定的后缀结束。
     */
    public static void testStartsWithAndEndsWith() {
        String str = "abcdef123";
        System.out.println(str.endsWith("123"));
        System.out.println(str.startsWith("123"));
    }

    /**
     * replaceAll(String regex, String replacement);使用给定的 replacement 替换此字符串
     * 所有匹配给定的正则表达式的子字符串。
     */
    public static void testReplaceAll() {
        String str = "abcdef1231";
        str = str.replaceAll("1","@");
        System.out.println(str);
        String str2 = "abcdef1231";
        str2 = str2.replace("1","#");
        System.out.println(str2);
        //一样?
        String str3 = "abcdef1231";
        str3 = str3.replaceAll("\d", "*"); //abcdef**** replaceAll()支持正则表达式
        System.out.println(str3);
    }
}
原文地址:https://www.cnblogs.com/jxxblogs/p/11045901.html