处理字符串的类

String

定义在java.lang包中的类,用来处理字符串 ,该类的字符串值的不可以被更改.

1.直接赋值创建字符串.

2.创建对象传参或赋值.

public class Test {
    public static void main(String[] args) {
        String a ="jsaa";
//系统会检查字符串池中是否存在当前字符串,如果存在直接调用串池的
        String s ="jsaa";
//定义字符数组,创建字符串对象,调用有参构造,传入字符数组为参数,此时在堆中开辟内存,
//在ASCll码表中查询数字对应的字符,生成字符串存入堆中,s1记录堆的地址值
        char[] c ={97,98};
        String s1 = new String(c);
        System.out.println(s1);//ab
    }
}

注意:每次new创建对象时都会在堆中开辟内存,所以一般建议直接赋值创建字符串更节约内存.

常用方法

char  charAt(index); 返回该索引处字符的值;

        String s ="jsaa";
        System.out.println(s.charAt(0));//j

boolean equals();   比较字符串内容是否相同,相同返回true.

        String s ="jsaa";
        String s2="jkll";
        System.out.println(s.equals(s2));//false

boolean equalslgnoreCase(); 忽略大小写比较

        String s ="jsaa";
        String s2="JSAA";
        System.out.println(s.equalsIgnoreCase(s2));//ture

String substring (int beginIndex);截取函数, 从开始索引截取到字符串末尾,返回被截取后的字符串

String substring (int beginIndex,int endIndex);包左不包右,从开始索引截取到endIndex-1;

        String s ="jsaa";
        String s2="JSAA";
        System.out.println(s.substring(1, 2));//j
        System.out.println(s2.substring(1));//SAA

String replace(oldChar,newChar); 替换字符串中的字符

        String s ="jsaa";
        System.out.println(s.replace('j', 's'));//ssaa
        System.out.println(s.replace('a', 'l'));//jsll


StringBuilder

提高字符串操作效率的类,可以看做一个大小可变的容器,该类里的字符串内容可变

常用方法

String append(); 添加数据,返回对象本身

      StringBuilder sb  = new StringBuilder();
//sb 只是 StringBuilder类型的容器的对象,不是字符串,直接打印sb,系统底层会自动调用该类的toString(),将其转化成字符串类型.
            sb.append("kladk");
            System.out.println(sb);

//也可以自己调用
           String s = sb.toString();
           System.out.println(s);
   

 String reverse();反转容器里的内容

  StringBuilder sb  = new StringBuilder();
              sb.append("kladk");
        System.out.println(sb.reverse());//kdalk

 int length(); 返回字符出现个数

String  toString(); 转换成字符串并返回

StringJoiner

jdk8出的操作字符串的类,同样看做容器,可拼接字符串

构造方法:

public  StringJoiner(delimiter:中间间隔符号 ,prefix:开始符号, suffix:末尾的符号),

没有空参构造,如果字符串拼接时没有要拼接的符号,也要输入" "号占位,中间可以不加符号.

//delimiter:中间间隔符号 ,prefix:开始符号, suffix:末尾的符号
        StringJoiner sj = new StringJoiner("-",",","?");
        System.out.println(sj.add("kjlksd").add("dss"));//,kjlksd-dss?

成员方法

add();添加字符串

length();返回字符出现个数,包括拼接的符号.

toString();转化成字符串

关于拼接字符串

1,一般连续调用StringBuilder类的append方法拼接,但要指定间隔符号这种情况,一般实例化StringJoiner类的对象添加比较方便.

2,如果 有变量的拼接,系统底层会创建StringBuilder类的对象,用append()添加完成拼接,这样比较浪费内存.这里的s变量记录的是堆中地址值;

没有变量则会复用串池中的字符串,然后直接相加,系统编译后就是拼接结果.

        String  c = "jkl";
        String s = "jda"+c;
System.out.println(s);//jdajkl
//较省内存
       String a = "jkl"+"jda";
    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值