java String类

一、字符串存储原理:

public class Test {
    public static void main(String[] args) {
        String s1="abcdef";
        String s2="abcdef"+"xy";
        String s3 = new String("xy");
    }
}
  • "abcdef"不可变,保存在常量池中。(双引号括起来的都在常量池中)
  • new 出来的对象则都是在堆里开辟空间。
  • 垃圾回收期不会回收常量池里的常量。
    在这里插入图片描述

以下代码创建了几个对象?

public class Test {
    public static void main(String[] args) {
        String s1 = new String("abc");
        String s2 = new String("abc");
    }
}

答案:3个。字符串常量池中创建一个“abc”, 堆内存中有两个String 对象。

二、String类方法:

1.返回字符串某个位置的字符

s.charAt(x);

  • 返回字符串s中x位置的字符,第一个字符位置x是0。

2.比较字符串大小

s1.compareTo(s2);

  • 从第一个字符开始挨个比较两个字符串字典序是否相同。相同为0,不相同±1。(前大后小1,前小后大-1)

3.将“非字符串”转换成“字符串”

String.valueOf(3.14);

  • 将非字符串3.14转换成字符串“3.14”。
  • 实际上该方法调用了Object类的toString()方法。

4.返回字符串本身

s.toString();

  • string类已经重写了toString方法和equals方法。
  • 对象s转换成字符串对象。

5.判断字符串是否包含某个子串

s.contains(x);

  • 字符串s是否包含字符串x。

6.判断当前字符串自否以某个字符串开始

s.startsWith(x);

  • 字符串s是否以字符串x开始。

7.判断当前字符串自否以某个字符串结尾

s.endWith(x);

  • 字符串s是否以字符串x结尾。

8.比较两个字符串是否相等

s.equals(x);

  • 字符串s是否等于字符串x,不能用“==”。
  • equals判断相等,compareTo既可以判断相等,也可以判断谁大谁小。

9.比较两个字符串是否相等,忽略大小写

s.equalsIgnoreCase(x);

  • 忽略大小写后字符串s是否等于字符串x,不能用“==”。

10.将字符串对象转换成字节数组

s.getBytes();

  • 字符串s转换为字节数组,返回字节数组。

11.字符串转char数组

s.toCharArray();

  • 返回值是一个char数组。

12.判断某个子字符串在当前字符串中第一次出现处的索引

s.indexOf(x);

  • 若存在返回x第一个字母位置的下标。

13.判断某个子字符串在当前字符串中最后一次出现处的索引

s.lastIndexOf(x);

  • 若存在返回x第一个字母位置的下标。

13.判断字符串是否为空字符串

s.isEmpty();

  • 空字符串是“ ”,不是null。
  • null会空指针异常。
  • 也可以用s.length()==0判断

14.字符串长度

s.length();

  • 注意字符串调用的是方法,而数组则是shuzu.length,调用的是属性。

15.字符串子串替换

s.replace(old,new);

  • 将s字符串中所有old子串替换为new子串,返回值是替换后的字符串。

16.拆分字符串

s.split(x);

  • 字符串s以字符串x进行拆分,返回值是一个String数组。

17.截取字符串

s.substring(start,end);

  • 截取字符串start~end-1的子字符串。

19.字符串中所有字符转小写

s.toLowerCase();

  • 返回值是小写字符串。

20.字符串中所有字符转大写

s.toUpperCase();

  • 返回值是大写字符串。

21.删除字符串前后空格,不包括中间的空格

s.trim();

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姓蔡小朋友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值