String_22

本文详细介绍了Java中的String类,强调其不可变性以及底层的char数组实现。通过示例展示了String的创建方式及一系列常用方法,如charAt、concat、contains、endsWith、equals等,还包括字符串转数组、分割字符串等操作。此外,还涵盖了String与其他数据类型转换及字符串的基本操作,如trim、toLowerCase、toUpperCase等。
摘要由CSDN通过智能技术生成

String

1.String是最终的类,不能被继承( public final class String)

2.String 底层维护了一个final的char[]的数组,一旦创建,不可以修改(private final char value[ ])

3.创建对象
String (char[] value) //分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。

4.String的常用方法:

import java.util.Arrays;

/**
 * Strig 是最终的类,不可以被继承(public final class String)
 * String 底层维护了一个final的char[]的数组,一旦创建,不可以修改
 * 创建对象
 *      String (char[] value)   //分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。
 * String 的常用方法:
 *      char charAt(int index)      //返回指定索引处的char值
 *
 *
 */
public class String_22 {
    public static void main(java.lang.String[] args) {
        char[] c =new char[] {'a','b','c','a'};
        String s = new String(c) ;      //  触发char[]类型的含参构造--存在了堆内存中
        String str = "abca" ;            //  直接赋值,存在堆内存中的常量池中--高效--因为常量池的相同数据,只会存一次
        String str2 = "abca";
        System.out.println(str2==str);  //true, 相同数据,拥有相同的存储空间,内存中就是相同的地址值
        System.out.println(s==str);     //false, s在堆里的地址值,str在常量池的地址值,不相同

        //2,常用方法
        System.out.println( s.charAt(1) );      // 根据下标获取对应的字符
        System.out.println( s.concat("123") );  //在字符串的末尾处拼接自定字符串
        System.out.println( s.contains("ca") ); //判断是否包含指定的字符串
        System.out.println( s.endsWith("a") );  //判断字符串 是否以指定后缀 结尾
        System.out.println( s.equals("abca") );  //判断字符是 是否 与指定的字符串  相等
        System.out.println( s.indexOf("a") );   //获取指定字符在字符串s中出现的第一次的下标值

        System.out.println(s.lastIndexOf("a"));     //获取指定字符在字符串s中出现的最后一次的下标值
        System.out.println(s.isEmpty());                //判断字符串是否为空
        System.out.println(s.length());                 //获取字符串的长度
        System.out.println( s.replace('a', '0') );//把旧字符用新字符替换 , 0bc0
        System.out.println( s.startsWith("ab") );       //判断是否以指定字符串开始
        System.out.println(s.endsWith("ab"));
        System.out.println( s.substring(1) );           //从指定下标处开始,截取所有字符串
        System.out.println( s.substring(0,2) );         //从指定下标开始,到指定下标结束,截取中间段[0,2)--含头不含尾
        System.out.println( s.toLowerCase() );          //自动转成小写
        System.out.println( s.toUpperCase() );          //自动转成大写

        s ="  ab  ca  ";
        System.out.println( s.trim() );                 //去除前面空格和后面空格

        String xxx = String.valueOf(3.1415926);         //将各种类型的数据转换成String类型
        System.out.println(xxx);

        //  字符串转数组
        byte[] bs = s.getBytes();                       //把字符串的数据放入byte[]里
        System.out.println(Arrays.toString(bs));

        String[] xxoo =s.split("  ");              //按照指定的规则来切割字符串
        System.out.println(Arrays.toString(xxoo));

    }
}

输出结果:

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值