String类概述
- java.lang.String 类代表字符串。
- Java程序中所有的字符串文字(例如 “abc” )都可以被看作是实现此类的实 例。
- 类 String 中包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串以及创建具有翻译为大写或小写的所有字符的字符串的副本。
特点:
1.字符串内容永不可变【重点】
2.因为字符串内容永不可变,所以可以共享使用。
3.字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组。
1. 字符串常量:字符串的值在创建后不能被更改。 (也就是说,声明后的字符串不可改变。如果操作了字符串,实质上是创建了一个新的字符串。)
2. 因为String对象是不可变的,所以它们可以被共享。
3. “abc” 等效于 char[] data={ ‘a’ , ‘b’ , ‘c’ } 。
学习String类的步骤
1.查看类:
- java.lang.String :此类不需要导入。
2.查看构造方法:
- public String() :初始化新创建的 String对象,以使其表示空字符序列。
- public String(char[] array) :通过当前参数中的字符数组来构造新的String。
- public String(byte[] array) :通过使用平台的默认字符集解码当前参数中的字节数组来构造新的 String。
- 构造举例,代码如下:
创建字符串的3+1种方式: - 三种构造方法:
public String()
:创建一个空白字符串,不含任何内容。
public String(char[] array)
:根据字符数组内容,创建对应的字符串。
public String(byte[] array)
:根据字节数组内容,创建对应的字符串。 - 一种直接创建:
String str = "Hello, world!";
//右边直接使用双引号,就是字符串对象
3.查看常用方法
1.判断功能的方法:
- public boolean equals (Object anObject) :将此字符串与指定对象进行比较。
- public boolean equalsIgnoreCase (String anotherString) :将此字符串与指定对象进行比较,忽略大小 写。
2.获取功能的方法:
- public int length () :返回此字符串的长度。
- public String concat (String str) :将指定的字符串连接到该字符串的末尾。
- public char charAt (int index) :返回指定索引处的 char值。
- public int indexOf (String str) :返回指定子字符串第一次出现在该字符串内的索引。
- public String substring (int beginIndex) :返回一个子字符串,从beginIndex开始截取字符串到字符 串结尾。
- public String substring (int beginIndex, int endIndex) :返回一个子字符串,从beginIndex到 endIndex截取字符串。含beginIndex,不含endIndex。
- 方法演示,代码如下:
3.转换功能的方法:
- public char[] toCharArray () :将此字符串转换为新的字符数组。
- public byte[] getBytes () :使用平台的默认字符集将该 String编码转换为新的字节数组。
- public String replace (CharSequence target, CharSequence replacement) :将与target匹配的字符串使 用replacement字符串替换。
- 方法演示,代码如下:
4.分割功能的方法:
- public String[] split(String regex) :将此字符串按照给定的regex(规则)拆分为字符串数组。
- 代码:
String类的练习
1.拼接字符串 :
定义一个方法,把数组{1,2,3}按照指定个格式拼接成一个字符串。格式参照如下:[word1#word2#word3]。
2.统计字符个数:
键盘录入一个字符,统计字符串中大小写字母及数字字符个数。
下列输出结果是什么?
Console:
Java方法中形参传递(值传递和引用传递的区别):
- 参数是基本数据类型叫值传递,传递的是该值的拷贝,改变的结果只在当前方法中有效,方法结束后拷贝的变量的值从栈中销毁。
- 参数是引用类型的叫引用传递,(数组、字符串),传递的是该引用(地址)的拷贝。当引用类型是字符串类型时,不会改变原有字符串的值;当是数组时,可改变数组中的内容。
注意:null没有分配内存空间,不能直接调用已经存在的方法。
String类的equals();方法,不能使用null.equals("");会报空指针异常。
空字符串:
注:参照自itheima[^1].