JAVA 常用对象 Api

发布于 2021-07-06 12:28:11 字数 2810 浏览 1475 评论 0

一、String 类

String 类的特点

字符串对象一旦被初始化就不会改变。字符串 abc 存储在字符串常量池中。

/**
演示字符串定义的第一种方式,并明确字符串常量池的特点。
池中没有就建立,池中有,直接用。
*/
class StringDemo{
    public static void main(String[] args){

        //在内存中有一个字符串缓冲区(字符串常量池)。
        String s = "abc";//先到字符串常量池中找,没有,创建,赋值
        String s1 = "abc";//先到字符串常量池中找,有,不再创建,直接赋值

        //所以s与s1指向同一个地址
        System.out.println(s==s1);//true

    }
}

字符串 new String("abc") 存储在堆内存中

class StringDemo{
    public static void main(String[] args){
        String s = "abc";//创建一个字符串对象在常量池中。
        String s1 = new String("abc");//创建两个对象,一个new一个字符串对象在堆内存中。

        System.out.println(s==s1);//false

        //字符串对象重写了Object的equals方法,比较内容,而不比较地址
        System.out.println(s.equals(s1));//true
    }
}

String 中的常用方法

1、构造函数
char[] arr={'a','b','c'}
String s = new String(arr);//将数组变为字符串abc

2、获取字符串长度
int length();

3、根据位置获取字符
char charAt(int index);

4、根据字符获取在字符串中第一次出现的位置
int indexOf(int ch)

5、获取字符串中一部分字符串,也叫子串
String substring(int beginIndex,int endIndex);

6、将字符串变成字符串数组(字符串的切割)
String[] split(String regex);//涉及到正则表达式

7、将字符串变成字符数组
char[] toCharArray();

8、将字符串变成字节数组
byte[] getBytes();

9、将字符串中的字母转成大小写
String toUpperCase();//大写
String toLowerCase();//小写

10、将字符串中的内容进行替换
String replace(char oldch,char newch);
String replace(String s1,String s2);

11、将字符串两端空格去除。
String trim();

12、将字符串进行连接。
String concat(String)

13、两个字符串内容是否相同
boolean equals(Object obj);
boolean equalsIgnoreCase(String str);//忽略大写比较字符串内容

14、字符串只是否包含指定字符串。
boolean contains(String str);

15、字符串是否以指定字符串开头,是否以指定字符串结尾
boolean startsWith(String str);
boolean endsWith(String str);

二、StringBuffer

特点

StringBuffer 就是字符串缓冲区,用于存储数据的容器。

1、长度是可变的。
2、可以存储不同类型的数据。
3、最终要转成字符串使用。
4、可以对字符串进行修改。

既然是一个容器,应该具备什么功能?
1、添加:StringBuffer append(data)
       StringBuffer insert(index,data)
2、删除:StringBuffer delete(start,end)//包含头,不包含尾
       StringBuffer deleteCharAt(int index)//删除指定位置的元素
3、查找:char charAt(index);
        int indexOf(string);
        int lastIndexOf(string);
4、修改:StringBuffer replace(start,end,string)
        void setCharAt(index,char);
public static void main(String[] args){
    //创建缓冲区对象
    StringBuffer s = new StringBuffer();

    StringBuffer s1 = s.append(4).append(false);
    s.insert(1,"haha");

    System.out.println(s==s1);//true


    //清空缓冲区
    s.delete(0,s.length())
}

三、StringBuilder(jdk 1.5)

jdk 1.5 以后出现了功能和 StringBuffer 一样的对象,就是 StringBuilder,不同的是:

  • StringBuffer 是线程同步的,适用于多线程。
  • StringBuilder 是线程不同步的,速度更快,适用于单线程。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

qq_Yqvrrd

文章 0 评论 0

2503248646

文章 0 评论 0

浮生未歇

文章 0 评论 0

养猫人

文章 0 评论 0

第七度阳光i

文章 0 评论 0

新雨望断虹

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文