引言
所谓重拾就是把以前的重点,难点的,易错知识点再次总结深入一遍的学习。所以只有把地基打牢,才能进行更好的学习。
本章我们主要学习数据类型:char ,String,还会了解到Unicode编码,空串和NULL到底什么区别,以及String类型常用API
一、char
1.char字符
char(character)是字符类型,一般表示单个字符。字符是什么?字符就是键盘上可以敲的任意一个键 ,它可以是任意一个字母abedefg,可以是任意一个数字123456,也可以是任意一个特殊的符号。它的表现形式如下:
char b = 'b';
char c = '1';
char d = '$';
2.Unicode
要想了解char类型必须就得知道Unicode编码了。
Unicode是一种编码机制,char类型用于存储于单个的字符,但是如何表示出来就得看Unicode编码方式了。它旨在为世界上的每一种语言的每一个字符提供一个唯一的数字标识,即码点。char 类型被用来存储Unicode字符。这意味着一个 char 变量可以存储一个Unicode码点,从而表示几乎任何语言的任何字符。
二、引用类型String
1.String不可变字符串
要想了解String为什么不可变,请阅读https://mp.csdn.net/mp_blog/creation/editor/136976921
了解了字符我们再来了解一下字符串类型,字符串类型(String)是多个字符组成的串。表现的形式如下:
String a = "hello";
这个字符串就是有字符 'h' 'e' 'l' 'l' 'o'组成。
值得一提的是:String定义的字符串是一种不可变的字符串,就像是final定义的字面常量一样不可以修改。如果你想修改里面的内容可以有两种方法
①修改字符串变量,让它重新引用另一个字符串。
例如:
String greating ="hello"; greating = greating.substring(0,3)+'p';
这段代码的意思就是 本身greating字符串被定义成''hello",然后再被另一个引用变量指向就变成了''help'';虽然我们不能对其内容改变,但我们可以改变引用变量所指向,从而达到改变字符串的目的。
②StringBuilder(String Buffer)
StringBuilder builder = new StringBuilder(); builder.append(3); builder.append(c); StringBuffer buffer = new StringBuffer(); buffer.append(1); buffer.append(a);
由此可见,两个类也是可以重新添加新的字符的。
再引入一句题外话:StringBuilder 是线程不安全的,所以在单线程下的性能会比Buffer性能高。所以说单线程,你要想添加字符用Builder,在多线程要保证数据一致安全的情况下可以用Buffer。
2.空串与null
“ ”是一个空串。
null表示的是一个特殊的值,它表示的是目前与任何东西都不相关、不关联。
两者最大的区别就是:
空串是一个已经定义好的字符串。它的长度为0,内容是“ ”,是一个已经分配好内存空间的,并且可以在上面进行字符串拼接和长度检查等操作。
null值是一个与任何东西无关的变量,它不指向任何对象,也没有分配存储空间。在数据库中,一个字段的值可以是null,表示该字段没有具体的数据。如果你尝试对null值进行任何操作,比如调用方法或访问属性,通常都会导致运行时错误。
三、常用StringAPI
①equals()
通常形式是a.equals(b),比较的是两个引用对象内容是否相同。
这里要与''==''区别开来,''==''比较的字符串所处是内存位置,当两个引用的内容相同,但它们所处的位置不一定相同。
具体内容也是参照我这篇文章https://blog.csdn.net/qq_73752061/article/details/133721019
②length( )
这个API通常用来求数组的长度,获取数组长度。
public class StringLengthExample {
public static void main(String[] args) {
String str = "Hello, World!";
int length = str.length();
System.out.println("The length of the string is: " + length); //13
}
}
③charAt( )
用于返回索引处的char值
String str = "Hello";
char firstChar = str.charAt(0); // firstChar is 'H'
④substring( )
这个方法返回一个新字符串,它是此字符串的一个子字符串。子字符串从指定的第一个参数开始,直到第二参数结束
String str = "Hello World";
String sub = str.substring(0, 5); // sub is "Hello"
⑤index( )
这个方法返回指定子字符串在此字符串中第一次出现处的索引,从指定的位置开始搜索
String str = "Hello World";
int index = str.indexOf("World"); // index is 6
int notFoundIndex = str.indexOf("Java"); // notFoundIndex is -1