java.lang.String 记录

Ctrl+F 没有就还没写到

1.获取到操作系统的换行符 (约等于\n)

String newLine0 = System.lineSeparator();
String newLine1 = System.getProperty("line.separator");

2.String.trim() 

trim方法并不影响原来的字符串本身 trim直译修剪 作用去掉字符串首尾的空格

String blankStr = " 前1 2后 ".trim();
//blankStr的值为:"前1 2后";

 

3.String.isEmpty()  

java.lang.String中的isEmpty()方法其实就是判断字符长度是否为0,length==0

如果String对象为null调用isEmpty()方法就会出现空指针异常

String emptyStr=null;
emptyStr.isEmpty();//NullPointerException

String emptyStr=" ";
emptyStr.isEmpty();//false

String emptyStr="";
emptyStr.isEmpty();//true

 

3+2 完整的String非空判断

排除String=null,="", =" "

if (str == null || str.trim().isEmpty()) {
    System.out.println("字符串为空");
}

 

4.String.split()

string.split(正则表达式)    string.split(正则表达式,切割次数)

切割次数完成后后面的字符串不会切割  -1为切割无限次

使用 | \ /等符号时候 需注意系统间的转义

JavaString 正则表达式匹配例子地址

"1.2.3.4.5.6.7.8.9.0".split("."); //{"1","2","3","4","5","6","7","8","9","0"}

"1.2.3.4.5.6.7.8.9.0".split(".",5); //{"1","2","3","4","5.6.7.8.9.0"}

"1.2.3.4.5.6.7.8.9.0".split(".",-1); //{"1","2","3","4","5","6","7","8","9","0"}

 

5.String 长度限制

常量池编译期最大限制为65534字节 运行期最大限制约4G 但是运行期String达到这么大 就应该考虑别的方案了

6.String.concat(); //将指定字符串添加到该字符串的结尾

约等于 "123"+"323" 中的+

但是concat()的只接受String类型参数 

+号可以随意拼接int,object.....

实测 单纯的字符串拼接 concat 效率远高于 +

String str = "a".concat("b")
                .concat("c")
                .concat("d")
                .concat("e");
//str="abcde";

8.String.equals()

jdk1.8 java.lang.String.equals() 源码:

首先判断两个变量是否是对同一个对象的引用 如果判断确定是一个对象 直接返回true

如不是来自同一个对象引用则详细对比 先对比字符长度(length)如长度首先不相等直接返回false

接下来才是逐个字符对比

举例:

        String str1 = new String("超级鸿");
        String str2 = new String("超级鸿");
        System.out.println(str1==str2);           //print false
        System.out.println(str1.equals(str2));    //print true

        String str3 = new String("超级鸿");
        String str4 = str3;
        System.out.println(str3==str4);           //print true
        System.out.println(str3.equals(str4));    //print true


        String str5 = "超级鸿";
        String str6 = "超级鸿";
        System.out.println(str5==str6);           //print true
        System.out.println(str5.equals(str6));    //print true

8.1.String  ==

用于基本数据类型的比较

判断引用是否指向堆内存的同一块地址

9.String.charAt()

返回指定下标的字符

下标超出会抛出 StringIndexOutOfBoundsException(字符串索引超出范围异常)

"超级鸿的String测试".charAt(0);  //超
"超级鸿的String测试".charAt(1);  //级

10.String.length()

返回会字符串的长度(int)

length和length()的区别 为什么数组length 而字符串是length()?

这篇文章写得很好→Java如何获取数组和字符串的长度(length还是length())

"超级鸿的String测试".length();   //int类型: 12

------------------------------------------------------------------------

最后一次记录时间2020年8月28日 16:04:44

顺颂时祺

猜你喜欢

转载自blog.csdn.net/weixin_40195422/article/details/106941073