String类学习笔记-String的创建-方法-注意事项

本文介绍了Java中String对象的创建方式,包括字面值和new方式,以及常用的字符串操作方法如长度、字符提取、比较、替换和分割等,并强调了String对象的不可变性和常量池机制。
摘要由CSDN通过智能技术生成

1.String创建对象

在这里插入图片描述
所有Java的字符串字面值,都是字符串对象。
创建String对象的第一种方式

String s1 = "abc"; //这里"abc"就是一个字符串对象,用s1变量接收

创建String对象第二种方式
在这里插入图片描述

// new String创建字符串对象,并调用构造器初始化字符串
String stra = new String();
System.out.println(stra ); // ""

String strb = new String("hjwwww");
System.out.println(strb );

char[] chars = {'q', 'w', 'e'};
String strc= new String(chars);
System.out.println(strc);

byte[] bytes = {97, 98, 99};
String strd= new String(bytes);
System.out.println(strd);

2.String类的常用方法

在这里插入图片描述

public class StringDemo {
    public static void main(String[] args) {
        String s = "hjwwww";
        // 1、获取字符串的长度
        System.out.println(s.length());
        // 2、提取字符串中某个索引位置处的字符
        char c = s.charAt(1);
        System.out.println(c);
        // 字符串的遍历
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            System.out.println(ch);
        }
        // 3、把字符串转换成字符数组,再进行遍历
        char[] chars = s.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.println(chars[i]);
        }
        // 4、判断字符串内容,内容一样就返回true
        String s1 = new String("qwer");
        String s2 = new String("qwer");
        //"=="比较地址  equals() 没重写比较地址,重写后比较值
        //String类对equals方法进行了重写
        System.out.println(s1 == s2); // false
        System.out.println(s1.equals(s2)); // true
        // 5、忽略大小写比较字符串内容
        String c1 = "34AeFG";
        String c2 = "34aEfg";
        System.out.println(c1.equals(c2)); // false
        System.out.println(c1.equalsIgnoreCase(c2)); // true
        // 6、截取字符串内容 (包前不包后的)
        String s3 = "0123456789";
        String rs = s3.substring(0, 8);
        System.out.println(rs);
        // 7、从当前索引位置一直截取到字符串的末尾
        String rs2 = s3.substring(5);
        System.out.println(rs2);
        // 8、把字符串中的某个内容替换成新内容,并返回新的字符串对象给我们
        String info = "这个电影简直是个垃圾,垃圾电影!!";
        String rs3 = info.replace("垃圾", "**");
        System.out.println(rs3);
        // 9、判断字符串中是否包含某个关键字
        String info2 = "Java是最好的编程语言之一,我爱Java,Java不爱我!";
        System.out.println(info2.contains("Java"));
        System.out.println(info2.contains("java"));
        System.out.println(info2.contains("Java2"));
        // 10、判断字符串是否以某个字符串开头。
        String rs4 = "张三丰";
        System.out.println(rs4.startsWith("张"));
        System.out.println(rs4.startsWith("张三"));
        System.out.println(rs4.startsWith("张三2"));
        // 11、把字符串按照某个指定内容分割成多个字符串,放到一个字符串数组中返回给我们
        String rs5 = "张无忌,周芷若,殷素素,赵敏";
        String[] names = rs5.split(",");
        for (int i = 0; i < names.length; i++) {
            System.out.println(names[i]);
        }
    }
}

3.String的注意事项

(1).string对象的内容不可改变,被称为不可变字符串对象。

执行第一句话时,会在堆内存的常量池中,创建一个字符串对象“黑马”,然后把“黑马”的地址赋值给String name
在这里插入图片描述
执行第二句话时,又会再堆内存的常量池中创建一个字符串“程序员”,和“黑马”拼接,拼接之后还会产生一个新的字符串对象”黑马程序员“,然后将新产生的“黑马程序员”对象的地址赋值给String name变量
在这里插入图片描述

(2).只要是以"…"方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份

在这里插入图片描述

(3).通过new方式创建字符串对象,每new一次都会产生一个新的对象放在堆内存中

在这里插入图片描述

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值