• 十四、Java基础---------String、StringBuffer、StringBuilder基本应用


         在前面的博客中曾提及Java的数据类型分为基本数据类型,和引用数据类型,而String便是最常见的应用数据类型,本文将着重介绍这一引用数据类型的用法。

    String 字符串

        String类是对字符串事物的描述。该类定义了专门用于操作字符串的方法。

       String s1 = "abc";

        s1是一个类类型变量, "abc"是一个对象。字符串最大特点:一旦被初始化就不可以被改变。注意不能改变的是"abc"而不是s1的指向。

        String s1="abc";

        String s2=new String("abc");

        S1在内存中有一个对象—>"abc",而s2在内存中有两个对象,一个是new String(),另一个是"abc"。

    String是Object的子类,并且复写了Object的equals方法。在这里只简单介绍 == 与 equals的区别(具体请 参考黑马程序员_Java基础之 equals 与 ==) :== 比较的是内存地址,equals比较的是内容,也就是字符序列。

    String用方法:

    1.获取

        1.1 获取字符串长度,也就是字符串中字符数

        int length();

        1.2 根据位置获取字符

        char charAt(int index);

        1.3 根据字符获取在字符中的位置

        int indexof(int ch) 返回的是ch在字符串中第一个出现的位置

        int indexof(int ch,int FromIndex) 从fromIndex指定位置开始,获取ch在字符串中出现的位置

        int indexof(String str); 返回的是str在字符串中第一个出现的位置

        int indexof(String str,int FromIndex) 从fromIndex指定位置开始,获取str在字符串中出现的位置反响索引一个字符出现的位置。

        int lastindexof(int ch) 返回的是ch在字符串中第一个出现的位置

        int lastindexof(int ch,int FromIndex) 从fromIndex指定位置开始,获取ch在字符串中出现的位置

        int lastindexof(String str); 返回的是str在字符串中第一个出现的位置

        int lastindexof(String str,int FromIndex) 从fromIndex指定位置开始,获取str在字符串中出现的位置

        1.4获取字符串中的一部分字符串,也叫子串。

        String subString(int beginindex,intendindex) ;

        String subString(int beginindex)

    2.判断

        2.1两个字符串是否相同

        boolean equals(Object obj)

        boolean equalsIgnoreCase(String str)

        2.2字符串中是否包含某个字符串

        boolean contains(String str)

        2.3两个字符串是否以指定字符串开头或结尾

        boolean Startswith(String);

        boolean endswith(String);

        2.4字符串是否为空

        boolean isEmpty();

        3.字符串转换

        3.1将字符串变成字符串数组

        String[] split(String regex);

        3.2将字符串变成字符数组

        char[] toCharArray();

        3.1将字符串变成字节数组

        byte[] getBytes();

        3.4将字符串数组变成字符串

        构造函数 String(char[])

        String(char[],offset,count)将字符数组中的一部分转成字符串。

        静态函数 static String copyValueof(char[])

        static String copyValueof(char[],offset,count)将字符数组中的一部分转成字符串。

        3.5将字符串的字母大小写转换

        String toUppercase();大写

        String toUppercase();小写

        3.6将字符串的内容替换

        String repalce(char oldch,char newch);

        String repalce(String s1,String s2);

        3.7将字符串两端空格去掉

        String trim();

        3.8将字符串进行连接

        String concat(String);

        4.比较

        compareTo();对两个字符串进行自然顺序的比较。小返回负数 等返回0 大返回正数

    StringBuffer

        是个字符串缓冲区对象,用于存储数据的容器

    特点:

        1.长度是可变的

        2.可以存储不同类型数据

        3.最终要转换成字符串使用

        4.可以对字符串进行修改

    常见用法

    1.添加

         append(data)将指定数据添加到已有数据的结尾处

         insert(位置,字符串) 将数据插入到指定位置

    2.删除

         delete(start,end) 删除缓冲区中的数据,包含start不包含end

         deleteCharAt(ine index)删除指定位置元素

         StringBuffer.delete(0,sb.length());

    3.查找

    char charAt(index);

    int indexof(string)

    int lastindexof(String);

    4.修改

    StringBuffer replace(start,end.String)

    void setCharAt(index,char)

            setlength()设置长度

    5.反转

    StringBuffer reverse();

    6.将缓冲区中的指定数据存储到字符数组中

    void getChars(int srcBegin,int srcEnd,char[] dst,int dstbegin)

    StringBuilder 线程不同步的,StringBuffer是同步的。

         StringBuilder是jdk 1.5 之后产生的新特性与StringBuffer相比,因为是非线程安全的,所以StringBuilder更高效,而在日常开发中StringBuilder使用的频率更多。

    建议使用StringBuilder效率快。

  • 相关阅读:
    7-1 N个数求和
    3662. 最大上升子序列和
    树状数组
    堆优化Dijkstra java模板
    皮亚诺曲线距离
    最长公共子序列(计数问题)
    最小路径覆盖
    极角排序
    2619. 询问
    Hessian矩阵与局部极小值
  • 原文地址:https://www.cnblogs.com/yueyazhishang/p/4032118.html
Copyright © 2020-2023  润新知