常用类(字符串操作类)

java.lang.String

字符串不能称之为数据类型,因为他的长度不确定,可大可小,数据类型是有他特定的存储单元的。
字符串的内容不能发生改变:(原因如下)
1.里面用的是数组,数组不可变,没有必要扩展数组
2.字符串优化(字符串池的优化)
3.它里面的数值是常量
String string=new String();//重新创建字符串对象可以逃脱字符串的优化
 String string="abc";
        String string1="abc";
        System.out.println(string==string1);//true,没有new对象之前,他们的地址是相同的,“==”代表的是两个字符串的内容和地址都相同
        String s=new String("abc");

        System.out.println(s==string);//false
        /**
         * 哈希值的算法中不参与地址的运算,只要满足a.equals(b),那么他们两个的哈希值就相同
         */
        System.out.println(s.hashCode());
        System.out.println(string.hashCode())

String的相关方法:

String str="ahvshdvasvssvasis.java";
        str.substring(0,5);//截取方法 规定截取的范围即可,容易发生数组越界的异常
        str.substring(2);//表示从字符串的第二个开始截取
        str.indexOf("a");//搜索方法,用于检索字符串中指定的字符下标,如果没有搜索到此字符则返回-1;在后面标注从哪里开始搜索
        str.toCharArray();//将字符串类型转换为char[]数组类型
        str.lastIndexOf("a");//表示从字符串的最后面进行指定字符的检索
        str.replace("h","w");//替换制定的字符,前者是指定要替换的字符,后者是指出替换的字符
        str.toLowerCase();//把字符串中的大写全部转换成小写
        str.toUpperCase();//将字符串中的小写全部换成大写
        str.startsWith("");//字符串前缀比较
        str.endsWith("");//字符串后缀比较
        str.equalsIgnoreCase("");//不区分大小写比较字符串
        str.equals("");//区分大小写比较字符串
str.trim();//去掉字符串两边的空格

String string="我是中国人"; byte[] bytes=string.getBytes("gbk"); String s=new String(bytes,"gbk");//字节转字符串,如果字符串转byte()有字符集的要求则byte转到字符串也必须有相同的字符集,不然会出现乱码 System.out.println(s); String string="168.199.1.1"; String[] s=string.split("\\.",4);//分割方法,按照相应的分割符号把字符分割,后面是要分隔的部分 for (String string1 : s) { System.out.println(string1); }

StringBuffer的相关方法:

String str="我爱我的祖国";
       StringBuffer stringBuffer=new StringBuffer();
       char[] strings=str.toCharArray();
        for (char string : strings) {
          stringBuffer.append(string);//StringBuffer数组里的长度可以改变
        }

 

StringBuffer和StringBuild的区别

 

StringBuilder:没有加同步安全关键字

 

StringBuffer :加了同步安全关键字(synchronized)

 

同步安全就是一次只允许一个任务访问

 

如果一个线程访问操作字符串,你就用StringBuilder。

 

如果多个线程访问操作字符,你就用StringBuffer。

 

 

 

转载于:https://www.cnblogs.com/xszddsz/p/11442459.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值