在 Java 语言中将字符串作为对象来处理,可以通过 java.lang包中的String类来创建字符对象。
1.1 声明字符串在Java语言中字符串必须包含在一对双引号(“ ”)之内。
可以通过以下语法格式来声明字符变量:
String str;
String:指定该变量为字符串类型。
str:任意有效的标识符,表示字符串变量的名称。
声明字符串变量必须进过初始化才能使用。
1.2 创建字符串String 类的常用构造方法如下:
1、String(char a[ ])
用一个字符数组a创建String对象。
char a[] = {'g','o','o','d'};
String s = new String(a);
//等价于 String s = new String("good");
2、String(char a[ ], int offset, int length)
提取字符数组a中的一部分创建一个字符串对象。参数 offset 表示开始截取字符串的位置,length表示截取字符串的长度。
char a[] = {'s','t','u','d','e','n','t'};
String s = new String(a,2,4);
//等价于 String s = new String("uden");
3、String(char[ ] value)
该构造方法可以分配一个新的 String 对象,使其表示字符数组参数中所有元素连接的结果。
char a[] = {'s','t','u','d','e','n','t'};
String s = new String(a);
//等价于 String s = new String("student");
4、通过字符串常量的引用赋值给一个字符串变量
String str1,str2;
str1 = "we are students";
str2 = "we are students";
此时 str1 和 str2 引用相同的字符变量,因此具有相同的实体。
二、连接字符串 2.1 连接多个字符串使用 “+” 运算符可以实现连接多个字符串的功能。“+” 运算符可以连接多个运算符并产生一个String对象。
String str1,str2;
str1 = "hello";
str2 = "world";
String s = str1 + " " + str2;
Java 中一句相连的字符串不能分开在两行中写,如果一个字符串太长,为了便于阅读,可以将这个字符串分在两行上书写,此时应使用 “+” 将两个字符串连起来,之后在加号出换行。
String.ou.println("I like
Java"); //这是的写法是错误的
//可以写成
String.ou.println("I like" +
"Java");
2.2 连接其他数据类型
字符串也可以同其他基本数据类型进行连接,这样做会将这些数据直接转换成字符串。
int book = 4;
int float price = 2.5f;
String.ou.println("我有" + book + "书," + "每本书" + price + "$.");
三、获取字符串信息
3.1 获取字符串长度
使用 String 类的 length() 方法可获取声明的字符串对象的长度。返回值类型为 int 型。返回的字符串的长度包括字符串中的空格。
str.length(); //str 为字符串对象
3.2 字符串查找
String 类提供了两种查找字符串的方法,即 indexOf() 与 lastIndexOf() 方法。
1、indexOf(String s)
该方法用于返回参数字符串s在指定字符串中首次出现的索引位置。当调用字符串的 indexOf() 方法时,会从当前字符串开始位置搜索s的位置;如果没有检测到字符串s,该方法的返回值是-1.
str.indexOf(substr);
str:任意字符串对象;
substr:要搜索的字符串。
2、lastIndexOf(String str)
该方法用于返回指定字符串最后一次出现的索引位置。当调用字符串的 lastIndexOf() 方法时,会从当前字符串开始位置搜索 str,将最后一次出现str的索引位置返回;如果没有检测到字符串s,该方法的返回值是-1.
str.lastIndexOf(substr);
str:任意字符串对象;
substr:要搜索的字符串。
3.3 获取指定索引位置的字符
使用charAt()方法可将指定索引处的字符返回。
str.charAt(int index);
str:任意字符串;
index:整型值,用于指定要返回字符串的下标。
四、字符串操作
4.1 获取子字符串
1、substring(int beginIndex)
该方法返回的是从指定的索引位置开始截取直到该字符串结尾的子串。
在字符串中一个空格占用一个索引位置。
2、substring(int beginIndex, int endIndex)
beginIndex:开始截取子字符串的索引位置。 endIndex:子字符串在整个字符串中的结束位置。 4.2 去空格trim()方法返回字符串的副本,忽略前导空格和尾部空格。
4.3 字符串替换replace()方法可实现将指定的字符或字符串替换成新的字符或字符串。
str.replace(char oldChar, char newChar)
oldChar:要替换的字符或字符串。
newChar:用于替换原来字符串的内容。
replace()方法返回的结果是一个新的字符串。如果字符串oldChar没有出现在该对象表达式中的字符串序列中,则将原字符串返回。
如果要替换的字符 oldChar 在字符串中重复出现多次,replace()方法会将所有 oldChar 全部替换成 newChar。
4.4 判断字符串的开始与结尾startsWith() 和 endsWith() 方法分别用于判断字符串是否是以指定的内容开始或结束。这两个方法的返回值都为 boolean 类型。
1、startsWith() 方法
该方法用于判断当前字符串对象的前缀是否为参数指定的字符串。
str.starsWith(String prefix);
prefix是指作为前缀的字符。
2、endsWith() 方法
该方法用于判断当前字符串是否以给定的子字符串结束。
str.endsWith(String suffix);
suffix是指作为后缀的字符。
4.5 判断字符串是否相等1、equals() 方法
如果两个字符串具有相同的字符和长度,则返回true。
str.equals(String otherstr);
2、equalsIgnoreCase() 方法
使用equals() 方法对字符串进行比较时是区分大小写的,而使用 equalsIgnoreCase() 方法是忽略了大小写的情况下比较两个字符串是否相等,返回结果为 boolean 类型。
str.equalsIgnoreCase(String otherstr);
4.6 按字典顺序比较两个字符串
compareTo() 方法为按字典顺序比较两个字符串,该比较基于字符串中各个字符的 Unicode 值,按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数;如果按字典顺序比较此 String 对象位于参数字符串之后,则比较结果为一个正整数;如果这两个字符串相等,则结果为0。
str.compareTo(String otherstr);
4.7 字母大小写转换
1、toLowerCase() 方法
该方法将 String 转换为小写。如果字符串中没有应该被转换的字符,则将原字符串返回;否则返回一个新的字符串,将原字符串中的每个该进行小写转化的字符都转换成等价的小写字符。字符长度与原字符长度相同。
str.toLowerCase();
2、toUpperCase() 方法
该方法将 String 转换为大写。如果字符串中没有应该被转换的字符,则将原字符串返回;否则返回一个新的字符串,将原字符串中的每个该进行大写转化的字符都转换成等价的大写字符。新字符长度与原字符长度相同。
str.toUpperCase();
使用 toLowerCase() 方法和 toUpperCase() 方法进行大小写转换时,数字或非字符不受影响。
4.8 字符串分割使用 split() 方法可以使字符串按指定的分割字符或字符串对内容进行分割,并将分割后的结果存放在字符串数组中。
1、split(String sign)
String[] str1 = str.split(String sign);
sign 为分割字符串的分割符,也可以使用正则表达式。
没有统一的对字符进行分割的符号,如多想定义多个分割符,可以使用符号 “|”,如 “,|=” 表示分割符分别为 ”,“ 和 ”=“。
2、split(String sign, int limit)
该方法可根据给定的分割符对字符串进行拆分,并限定拆分次数。
String[] str1 = str.split(String sign, int limit);
sign:分割字符串的分割符,也可以使用正则表达式;
limit:限制的分割数,即分割成含 limit 个元素的数组。
阅读API文档
String 类包含许多方法。而且,在标准库中有几千个类,方法数量更加惊人。要想记住所有的类和方法是不太可能的事情。因此,学会使用在线API文档十分重要,从中可以查阅到标准类库中的所有类和方法。可以在网站 https://docs.oracle.com/en/java/javase/14/docs/api/index.html 上在线查看和下载最新版的Java API文档。
String 类的 API 文档地址为 https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/lang/String.html 。