- 1、String类基本概述
- 2、字符串的比较
- 3、 *** 作子串
- 搜索与提取子串
- 去除首尾空白字符
- 替换子串
- 分割与拼接字符串
- 格式化字符串
- 类型转换
-
String是一个引用类型,本身是一个对象
注:对于Java而言,除了primitive type值(即int, long, double等),其余的都是对象
-
String类型最大的特点是
字符串不可变
,这是由于String类内部的private final char[]
决定的
equals()
==
要想比较两个字符串内容是否相同,必须使用equals
函数,忽略大小写用equalsIgnoreCase()
函数
public class Main {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
//用等号返回true,这两个值会相等是因为所有的String对象会放在一个常量池,s1和s2的引用是相同的属于巧合
public class Main {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "HELLO".toLowerCase();
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
//这种情况下 s1 == s1 就会返回false
3、 *** 作子串
搜索与提取子串
contains()函数
"Hello".contains("ll"); //true
//contains()方法的参数是CharSequence而不是String
"Hello".indexOf("l"); // 2
"Hello".lastIndexOf("l"); //3
"Hello".startsWith("He"); //true
"Hello".endsWith("lo"); //true
"Hello".substring(2, 4); //"ll"
//提取子串
去除首尾空白字符
trim()函数
"\tHello\r\n".trim(); //"Hello"
//trim()方法 可以去除首尾的 \r \t \n 字符
strip()函数
"\u3000Hello\u3000".stip(); //"Hello"
//strip更强大,可以移除中文空格
//stripLeading() 去除开头的空格
//stripEnding() 去除结尾的空格
isEmpty()函数、isBlank()函数
"".isEmpty(); //true
" ".isEmpty(); //false
" /n".isBlank(); //true
" Hello".isBlank(); //false
替换子串
replace函数
String s = "Hello";
s.replace('l', 'w');
正则表达式替换
String s = "A,,B;C , D";
s.replaceAll("[\, \; \s]+", ",");
//这里的正则表示 需要先将 \ 转义即 \, \这个表示 \ ,一个\表示转义符, 然后 \s 才表示\s
分割与拼接字符串
split函数、join函数
String s = "A,B,C,D";
String[] ss = s.split('\,');
//分割也是通过正则来做的
String[] arr = {"A", "B", "C"};
String s = String.join("***", arr);
//输出结果 A***B***C
格式化字符串
formatted()函数、format()函数
String s = "Hi %s, your score is %d!";
System.out.println(s.formatted("Alice",80));
System.out.println(String.format("Hi %s, your score is %.2f", "Alice", 89.0));
%s
:显示字符串%d
:显示整数%x
:显示十六进制整数%f
:显示浮点数
%s
是万能的,可以显示任何数据(存在类型转换)
valueOf()函数
这是一个重载方法,编译器可以根据参数类型自行判断
String.valueOf(1); //'1'
String.valueOf(new Object()); //java.lang.Object@16d3586
字符转其他类型
Integer.parseInt()
Boolean.parseBoolean()
Integer.getInteger()
String类型与char[] 数组互相转换
String s = "Hello";
char[] cs = s.toCharArray(); // String => char[]
String ss = new String(cs); // char[] => String
ps:这个地方涉及到String不可变
的另外一个知识点
String (char [])的引用地址不可变,但是String(char [])里面的内容可以改变
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)