Java之String类
一.字符串的构造方法
public static void main(String[] args) {//第一种方法String str1="hello";//第二种方法String str2=new String("hello");//第三种方法char[] array={'h','e','l','l','o'};String str3=new String(array);}
第一种创建方式和第二种方式的区别:
第一种创建方式是会先在字符串常量池里面先找“hello”,如果有就直接让str1指向它,没有则创建一个新的“hello”,让str1指向它。
第二种创建方式会强制在堆内存创建一个String对象,内容为“hello”,然后让str2指向它。
二.String类的对象比较方式
public static void main(String[] args) {String str1=new String("hello");String str2="hello";String str3="hello";String str4=str1;//第一种比较 ==System.out.println(str1==str2); 结果为falseSystem.out.println(str2==str3); 结果为trueSystem.out.println(str1==str4); 结果为true//第二种比较System.out.println(str1.equals(str2)); 结果为trueSystem.out.println(str1.equals(str3)); 结果为trueSystem.out.println(str2.equals(str3)); 结果为true}
==和equals()的区别:
==:是比较两者的地址是否相同。
.equals()是比较两者引用的内容是否相同。
三.String类中字符串的查找方法
四.String类中的相关转化
public static void main(String[] args) {//数值和字符串的转化String str1=String.valueOf(1234);//数字转字符串int date=Integer.parseInt("1234");//字符转数字//大小写转化String str2="hello";String str3="HELLO";System.out.println(str2.toUpperCase()); //转化为大写System.out.println(str3.toLowerCase()); //转化为小写//字符串与数组的转换String str4="hello";//字符串转数组char[] array=str4.toCharArray();//array={'h','e','l','l','o'}//数组转字符串String str5=new String(array);//格式化String str6=String.format("%d-%d-%d",2025,8,13);}
五.字符串的替换方法
public static void main(String[] args) {String str1="hello world";System.out.println(str1.replace("l","o")); System.out.println(str1.replaceAll("o","l"));System.out.println(str1.replace("ll","oo"));System.out.println(str1.replaceAll("lll","llo"));System.out.println(str1.replaceFirst("h","w"));}
结果:
replace()和replaceAll()的区别:
replace()是直接替换,replaceAll()是使用正则表达式,如果提供的字符或字符串存在则替换,否则返回原来的字符。
由于字符串是不可变对象,替换不修改当前字符串,而是产生一个新的字符串。
六.字符串的拆分
public static void main(String[] args) {String str="welcome to new world";String[] array=str.split(" ");for(String x:array){System.out.println(x);}System.out.println();String[] array2=str.split(" ",2);//拆分为limit:2个组for(String x:array2){System.out.println(x);}}
结果: