【无标题】

String

String概述

1、String:字符串类型,可以定义字符串变量指向字符串对象

2、String是不可变字符串

  • String变量的每次修改其实都是产生了指向新的字符串对象,而原来的字符串对象并未改变(改变String变量指向的地址)
  • 以“ ”创建的字符串对象(例:String name=“牛嘉桢”),在字符串常量池中储存。
String常用方法

1、字符串内容的比较:

  • 利用==进行比较:比较字符串之间的地址、内容是否相等
  • 利用String类方法equals比较:比较字符串内容是否相等

在这里插入图片描述

2、常用API:
在这里插入图片描述

代码:

public class StringAPI {
    public static void main(String[] args) {
        String name="牛嘉桢";
        System.out.println(name.length());//长度

        System.out.println(name.charAt(2));//返回索引处字符串(返回桢)

        //遍历字符串数组   ;
        for (int i = 0; i < name.length(); i++) {
            System.out.println(name.charAt(i));
        }

        //字符串转换为字符数组
        char a[]=name.toCharArray();
        for (int i = 0; i < a.length; i++) {
            System.out.println(a[i]);
        }

        //根据开始和结束索引进行截取,得到新的字符串(包括begin不包括end)
        String b=name.substring(1,2);//包括1不包括2
        System.out.println(b);

        //从begin值截取到末尾;
        String c=name.substring(1);
        System.out.println(c);

        //采用新值替换字符串中旧值(用于替换敏感词)
        String Name="123124123124123124123123";
        System.out.println(Name.replace("1", "*"));

        //判断字符串中是否含有相应值
        System.out.println(Name.contains("1"));

        //判断是否有相应值为开头开始
        System.out.println(Name.startsWith("1"));
        System.out.println(Name.startsWith("2"));

        //根据某个内容讲字符串分割成字符串数组
        String name1="牛嘉桢,njz,Njz";
        String aa[]=name1.split(",");
        for (int i = 0; i < aa.length; i++) {
            System.out.println(aa[i]);
        }
    }
}

3、String类创建对象的方式

  • 直接用双引号**“ ”**定义:String name=“njz”

    • 在字符串常量池中储存同一个,不重复
  • 运用String类的new构造器:

    • 每new一次都会产生一个新的对象,放在堆内存中,重复的字符串储存多次

    在这里插入图片描述

    代码:

    public class StringTest {
        public static void main(String[] args) {
            String s="name";
            System.out.println(s);
    
            String s1=new String();
            System.out.println(s1);
    
            String s2=new String("njz");
            System.out.println(s2);
    
            char a[]={'a','b','c'};
            String s3=new String(a);
            System.out.println(s3);
            //双引号""的方式给出的字符串对象在字符串常量池中储存,并且相同内容只储存一份
            String ss="njz";
            String sss="njz";
            System.out.println(String.class.getName() + "@" + Integer.toHexString(System.identityHashCode(ss)));
            System.out.println(String.class.getName() + "@" + Integer.toHexString(System.identityHashCode(sss)));
            //ss与sss地址相同,说明字符串ss与sss都指向字符串常量池中的同一个字符串
            //通过构造器new对象,每new一次都会产生一个新对象,放在堆内存中
            String ss1=new String("njz");
            String sss1=new String("njz");
            System.out.println(String.class.getName() + "@" + Integer.toHexString(System.identityHashCode(ss1)));
            System.out.println(String.class.getName() + "@" + Integer.toHexString(System.identityHashCode(sss1)));
            //相同的String字符串,但地址不同
        }
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值