码迷,mamicode.com
首页 > 其他好文 > 详细

常用类(字符串操作类)

时间:2019-09-01 16:22:18      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:长度   线程   出现   数组越界   spl   pre   size   数值   不可   

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("");//区分大小写比较字符串
        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。

 

 

 

常用类(字符串操作类)

标签:长度   线程   出现   数组越界   spl   pre   size   数值   不可   

原文地址:https://www.cnblogs.com/xszddsz/p/11442459.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!