String类的相关知识

1.首先String类的俩种实例化方式:

  • 直接赋值

String str = "Hello World" ; // str是一个对象,那么"Hello World" 就应该保存在堆内存中

  • 使用关键字new:

String str = new String("Hello World") ; //使用关键字new进行对象实例化

  • 请解释String类中两种对象实例化的区别
    
    1. 直接赋值:只会开辟一块堆内存空间,并且该字符串对象可以自动保存在对象池中以供下次使用。
    2. 构造方法:会开辟两块堆内存空间,其中一块成为垃圾空间,不会自动保存在对象池中,可以使用intern()手动入池
    

2.字符串的比较 

String str1 = "Hello" ;

String str = new String("Hello") ;

System.out.println(str1==str); // false

System.out.println(str1.equals(str));//true

请解释String类"=="与"equals"的区别

  • ”==”:进行的数值比较,比较的是两个字符串对象的内存地址数值。
  • “equals()”:可以进行字符串内容的比较

3.字符串常用的方法

        String a="abcdefj";
        //charAt :取得索引位置的字符,索引从0开始
        char ch=a.charAt(3);
        System.out.println(ch);
        //toCharArray():将字符串变为字符数组返回
        char[] c=a.toCharArray();
        for (int i=0;i<c.length;i++){
            System.out.print(c[i]+"\t");
        }
        System.out.println();

字符串比较:

        //equals():比较,区分大小写
        //str1.equalsIgnoreCase():比较,不区分大小写
        //compareTo():比较俩个字符串大小的关系   相等等于0  . 小于:返回内容小于0,大于则相反
        String str1="hello";
        String str2="Hello";
        System.out.println(str1.equals(str2));
        System.out.println(str1.equalsIgnoreCase(str2));
        System.out.println(str1.compareTo(str2));

字符串查找:

 最常用的是contains:

        //contains:判断一个子字符串是否存在
        //indexOf:从头开始查找指定字符串的位置
        //startsWith():判断是否以指定字符串开头
        //endsWith:判断是否以指定字符串结尾
        String str3 = "helloworld" ;
        System.out.println(str3.contains("world")); // true
        String str = "helloworld" ;
        System.out.println(str.indexOf("world")); // 5,w开始的索引
        System.out.println(str.indexOf("bit")); // -1,没有查到
        if (str.indexOf("hello") != -1) {
            System.out.println("可以查到指定字符串!");
        }

字符串替换:

        String str = "helloworld" ;        
        //replaceAll():替换所有的指定内容
        //replaceFirst():替换收个内容
        System.out.println(str.replaceAll("l", "_"));
        System.out.println(str.replaceFirst("l", "_"));

 字符串拆分:可以将一个完整的字符串按照指定的分隔符划分为若干个字符串

        //字符串拆分 split(String  regex):将字符串全部拆分
        //split(String  regex ,int limit):将字符串部分拆分,该数组长度就是limit的极限
        String str4 = "hello world hello bit" ;
        String[] result = str4.split(" ") ; // 按照空格拆分
        for(String s: result) {
            System.out.print(s+"\t");
        }

        //多次拆分
        String str6 = "yuisama:27|yui:25" ;
        String[] result1 = str6.split("\\|") ;
        for (int i = 0; i < result1.length; i++) {
            String[] temp = result1[i].split(":") ;
            System.out.println(temp[0]+" = "+temp[1]);
        }

字符串截取:

String str = "helloworld" ;
System.out.println(str.substring(5));
System.out.println(str.substring(0, 5));

其他方法;

注意:String类的特点是:

String的常量一旦声明不可改变,如果改变对象内容,改变的是其引用的指向而已。

 可以发现字符串上没有发生任何变化,但是字符串对象的引用一直在改变,而且会形成大量的垃圾空间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值