java——String类

String类的特点:

String是常量创建的对象不能改变如果改变就创建新的对象
首先检查常量池中是否有该字符串,如果没有会创建
字符串对象一旦被初始化就不会被改变。

初始化一个String对象

1.String str1= "abc";
2.String str2 = new String();
3.String str3 = new String("abc");

String 类的常见操作
length() :获取字符串长度
charAt():获取字符
indexOf():位置索引
lastIndexOf():索引最后位置
替换和去空格操作
replace();
trim();
判断操作
startsWith();是否以xx开头
endWith();是否已xx结尾
contains();是否包含字符串xx
isEmpty();字符串是否为空
equals();两个字符串是否相等
截取与分割
subString();
split();
StringBuffer类(字符缓冲区)

StringBuffer和String最大的区别是它的内容和长度都是可以改变的
* StringBuffer:就是字符串缓冲区。
* 用于存储数据的容器。
* 特点:
* 1,长度的可变的。
* 2,可以存储不同类型数据。
* 3,最终要转成字符串进行使用。
* 4,可以对字符串进行修改。

StringBuffer sb = new StringBuffer();
sb.append("hhh");
sb.insert(2,"hhh");
sb.delete(1,5);
sb.deleteCharAt(2);
sb.setCharAt(1,'p');
sb.replace(1,3,"qq");
区别:

String类覆盖了Object类的equals()方法;
String类的操作符可以用操作符+进行连接

jdk1.5以后出现了功能和StringBuffer一模一样的对象。就是StringBuilder
  • 不同的是:

  • StringBuffer是线程同步的。通常用于多线程。

  • StringBuilder是线程不同步的。通常用于单线程。 它的出现提高效率。

    • jdk升级:
    • 1,简化书写。
    • 2,提高效率。
    • 3,增加安全性。
字符串的排序
public static void main(String[] args) {

        String[] arr = { "nba", "abc", "cba", "zz", "qq", "haha" };

        printArray(arr);

        sortString(arr);

        printArray(arr);

    }

    public static void sortString(String[] arr) {

        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = i + 1; j < arr.length; j++) {

                if(arr[i].compareTo(arr[j])>0)//字符串比较用compareTo方法
                    swap(arr,i,j);
            }
        }
    }

    private static void swap(String[] arr, int i, int j) {
        String temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

    public static void printArray(String[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if (i != arr.length - 1)
                System.out.print(arr[i] + ", ");
            else
                System.out.println(arr[i] + "]");
        }
    }

你可能感兴趣的:(java——String类)