Java中String,StringBuffer,StringBuilder常用方法及使用实例

1 . String类中常用方法

  1. char charAt(int index)
    返回指定索引处的 char 值。

  2. int compareTo(String anotherString)
    按字典顺序比较两个字符串。实际上返回的是字符ASCII码的差值,但通常只关心正负还是0

  3. boolean contains(CharSequence s)
    当且仅当此字符串包含指定的 char 值序列时,返回 true。

  4. boolean startsWith(String prefix)
    测试此字符串是否以指定的前缀开始。还可以指定开始检测位置下标
    boolean endsWith(String suffix)
    测试此字符串是否以指定的后缀结束。
  5. boolean equals(Object anObject)
    将此字符串与指定的对象比较。已覆写,比较内容是否相等

  6. void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
    将字符从此字符串复制到目标字符数组。

  7. int hashCode()
    返回此字符串的哈希码。

  8. int indexOf(int ch)
    返回指定字符在此字符串中第一次出现处的索引。 没有则返回-1
    int indexOf(int ch, int fromIndex)
    返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
    int indexOf(String str)
    返回指定子字符串在此字符串中第一次出现处的索引。
    int indexOf(String str, int fromIndex)
    返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。

    int lastIndexOf(int ch)
    返回指定字符在此字符串中最后一次出现处的索引。
    int lastIndexOf(int ch, int fromIndex)
    返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
    int lastIndexOf(String str)
    返回指定子字符串在此字符串中最右边出现处的索引。
    int lastIndexOf(String str, int fromIndex)
    返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。

  9. int length()
    返回此字符串的长度。

  10. boolean matches(String regex)
    告知此字符串是否匹配给定的正则表达式。
  11. String replace(char oldChar, char newChar)
    返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
    String replace(CharSequence target, CharSequence replacement)
    使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
    String replaceAll(String regex, String replacement)
    使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。

  12. String[] split(String regex)
    根据给定正则表达式的匹配拆分此字符串。
    String[] split(String regex, int limit)
    根据匹配给定的正则表达式来拆分此字符串。

  13. String substring(int beginIndex)
    返回一个新的字符串,它是此字符串的一个子字符串。
    String substring(int beginIndex, int endIndex)
    返回一个新字符串,它是此字符串的一个子字符串。
  14. char[] toCharArray()
    将此字符串转换为一个新的字符数组。
  15. String toLowerCase()
    使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
    String toLowerCase(Locale locale)
    使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。
    String toUpperCase()
    使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
    String toUpperCase(Locale locale)
    使用给定 Locale 的规则将此 String 中的所有字符都转换为大写
  16. String toString()
    返回此对象本身。

public class StringOpera
{

public static void main(String[] args)
{
    String[] str1 = { "NBA", "ABC", "Mike", "NBA", "NG", "OK", "NBA" };
    stringSort(str1);
    stringPrint(str1);
    String str2 = "jhabchjabckokabc";
    System.out.println(substringCount(str2, "abc"));

    String strA = "tryyufgasdkjkabcdeijr";
    String strB = "asdabcde";
    String com = maxCommon(strA, strB);
    System.out.println(com);
}

// 获取两个字符串中最大公共子串
public static String maxCommon(String stringA, String stringB)
{
    String strMax = null, strMin = null;
    // 找到長度大的
    if (stringA.length() >= stringB.length())
    {
        strMax = stringA;
        strMin = stringB;
    } else
    {
        strMax = stringB;
        strMin = stringA;
    }

    // 双层循环
    for (int i = 0; i < strMin.length(); i++)
        for (int j = 0, l = strMin.length() - i; l != strMin.length() + 1; j++, l++)

        {
            String com = strMin.substring(j, l);
            if (strMax.contains(com))
                return com;
        }
    return null;
}

// 打印
public static void stringPrint(String[] str1)
{
    for (int i = 0; i < str1.length; i++)
        System.out.print(str1[i] + "  ");
}

// 字符串数组排序
public static void stringSort(String[] string)
{
    for (int i = 0; i < string.length - 1; i++)
        for (int j = i + 1; j < string.length; j++)
            if (string[i].compareTo(string[j]) > 0)
                StringOpera.swap(string, i, j);
}

// 子串出现次数
public static int substringCount(String str2, String substring)
{
    int count = 0;
    for (int index = 0; index < str2.length(); index++)
        if ((index = str2.indexOf(substring, index)) != -1)
        {
            index = index + substring.length();
            count = count + 1;
        }
    return count;
}

// 交换
public static void swap(String[] strArry, int i, int j)
{
    String temp = strArry[i];
    strArry[i] = strArry[j];
    strArry[j] = temp;
}

}

2. StringBuffer

用于存储数据的容器。类似于字符串缓冲区,池子不能修改,但是“内容”可以通过方法修改,最主要的两个方法就是 append 和 insert 方法
特点:
长度的可变的。
可以存储不同类型数据。
最终要转成字符串进行使用。
可以对字符串进行修改。

线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。


  1. StringBuffer append(data);尾部添加
    StringBuffer insert(index,data);指定未知插入

    eg:
    StringBuffer sb=new StringBuffer(“abc”);
    sb.append(“de”);
    //打印sb 为abcde


  2. StringBuffer delete(int start, int end)
    StringBuffer deleteCharAt(int index):删除指定位置的元素

    eg:
    sb.delete(0,sb.length());


  3. StringBuffer replace(start,end,string);
    void setCharAt(index,char);

  4. char charAt(index);
    int indexOf(string);

3. StringBuilder

功能和StringBuilder几乎一模一样,但是无线程安全,从1.5版本开始
为了提高效率,在单线程中尽量使用StringBuilder。

  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值