前言
字符串在使用的频率非常高,非常重要,这是我总结的适合初学者的有关字符串的使用及注意事项
提示:以下是本篇文章正文内容,下面案例可供参考
一、概述
java.lang.String类代表字符串,Java程序中的所有字符串文字(例如"abc","下雨摸鱼休息","求点赞求关注")都为此类的对象。
二、注意事项
1、字符串的内容是不会自己改变的,它的对象在创建后不能被更改。
2、字符串拼接产生一个新的字符串
三、使用方法
1、直接赋值
这是最常见的使用方法,上代码!
public class Main {
public static void main(String[] args){
String str = "123456";
System.out.println(str);
}
}
输出结果显而易见,就是123456
2、使用new的方式来获取一个字符串对象
1·空参构造:可以获取一个空白的字符串对象(这个真就是多此一举了,很少用)
String s2 = new String();
System.out.println("@" + s2 + "!);
输出的结果为:@!
2·传递一个字符串,根据传递的字符串内容再创建一个新的字符串对象(用的比较少)
String s3 = new String(original:"abc");
System.out.println(s3);
结果是:abc(注:这里有一个注意事项,在下面会有提到)
3·传递一个字符数组,根据字符数组的内容再创建一个新的字符串对象
char[] chs = {'a','b','c','d'};
String s4 = new String(chs);
System.out.println(s4);
eg.(使用场景)需求:我要修改字符串的内容,将abc变为Qbc,因为字符串的内容是不能改变的,此时我们可以把它变成字符数组{'a','b','c'}然后再把零索引上的a变为Q就可以啦。
4·传递一个字节数组,根据字节数组的内容再创建一个新的字符串对象
byte[] bytes = {97,98,99,100};
String s5 = new String(bytes);
System.out.println(s5);
输出结果为:abcd
我们可以拿着这些数字去查ASCII表中去查,查到对应的字母再把它进行砖混变成字符串
应用场景:在网络中传输的数据都是字节信息,我们一般要把字节信息进行转换,转成字符串,此时就用到这个构造啦。
四、String在Java的内存模型
1、当使用双引号直接赋值的时候,系统会检查该字符串在串池中是否存在,如果不存在,就创建新的,如果存在了,就复用
2、当使用new时,在堆里面开辟新的空间,创建的字符串对象,不会复用,如果相同的字符串较多时就会浪费内存空间
五、字符串的比较
1、“==”比的到底是什么?
1·基本数据类型比较的是数据值
2·引用数据类型比较的是地址值
2、boolean equals(要比较的字符串)————完全一样为true,否则为false
boolean equalsIgnoreCase(要比较的字符串)————忽略大小写的比较(此处的忽略仅限于英文字母的大小写)
3、键盘录入的字符串是new出来的
结论:以后想要比较字符串的内容,就必须要用String里面的方法,equals或者equalsIgnoreCase。
还有一个StringBuilder这些的用法,尽情期待下一篇。