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为切割无限次
使用 | \ /等符号时候 需注意系统间的转义
"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
顺颂时祺