文章目录
Java String类的函数非常丰富,需要在实际运用中不断的积累,查看JDK的相关文档,中文的英文的都需要查看,相互印证和理解。
String 函数介绍
SN | 方法 | 描述 |
---|---|---|
1 | char charAt(int index) | 返回指定索引处的 char 值。 |
2 | int compareTo(Object o) | 把这个字符串和另一个对象比较。 |
3 | int compareTo(String anotherString) | 按字典顺序比较两个字符串。 |
4 | int compareToIgnoreCase(String str) | 按字典顺序比较两个字符串,不考虑大小写。 |
5 | String concat(String str) | 将指定字符串连接到此字符串的结尾。 |
6 | boolean contentEquals(StringBuffer sb) | 当且仅当字符串与指定的StringBuffer有相同顺序的字符时候返回真。 |
7 | static String copyValueOf(char[] data) | 返回指定数组中表示该字符序列的 String。 |
8 | static String copyValueOf (char[] data, int offset, int count) | 返回指定数组中表示该字符序列的 String。 |
9 | boolean endsWith(String suffix) | 测试此字符串是否以指定的后缀结束。 |
10 | boolean equals(Object anObject) | 将此字符串与指定的对象比较。 |
11 | boolean equalsIgnoreCase( String anotherString) | 将此 String 与另一个 String 比较,不考虑大小写。 |
12 | byte[] getBytes() | 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |
13 | byte[] getBytes(String charsetName) | 使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |
14 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) | 将字符从此字符串复制到目标字符数组。 |
15 | int hashCode() | 返回此字符串的哈希码。 |
16 | int indexOf(int ch) | 返回指定字符在此字符串中第一次出现处的索引。 |
17 | int indexOf(int ch, int fromIndex | 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。 |
18 | int indexOf(String str) | 返回指定子字符串在此字符串中第一次出现处的索引。 |
19 | int indexOf(String str, int fromIndex) | 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。 |
20 | String intern() | 返回字符串对象的规范化表示形式。 |
21 | int lastIndexOf(int ch) | 返回指定字符在此字符串中最后一次出现处的索引。 |
22 | int lastIndexOf(int ch, int fromIndex) | 返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。 |
23 | int lastIndexOf(String str) | 返回指定子字符串在此字符串中最右边出现处的索引。 |
24 | int lastIndexOf(String str, int fromIndex) | 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。 |
25 | int length( | 返回此字符串的长度。 |
26 | boolean matches(String regex) | 告知此字符串是否匹配给定的正则表达式。 |
27 | boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) | 测试两个字符串区域是否相等。 |
28 | boolean regionMatches(int toffset, String other, int ooffset, int len) | 测试两个字符串区域是否相等。 |
29 | String replace(char oldChar, char newChar) | 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 |
30 | String replaceAll(String regex, String replacement) | 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。 |
31 | String replaceFirst(String regex, String replacement) | 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。 |
32 | String[] split(String regex) | 根据给定正则表达式的匹配拆分此字符串。 |
33 | String[] split(String regex, int limit) | 根据匹配给定的正则表达式来拆分此字符串。 |
34 | boolean startsWith(String prefix) | 测试此字符串是否以指定的前缀开始。 |
35 | boolean startsWith(String prefix, int toffset) | 测试此字符串从指定索引开始的子字符串是否以指定前缀开始。 |
36 | CharSequence subSequence( int beginIndex, int endIndex) | 返回一个新的字符序列,它是此序列的一个子序列。 |
37 | String substring(int beginIndex) | 返回一个新的字符串,它是此字符串的一个子字符串。 |
38 | String substring(int beginIndex, int endIndex) | 返回一个新字符串,它是此字符串的一个子字符串。 |
39 | char[] toCharArray() | 将此字符串转换为一个新的字符数组。 |
40 | String toLowerCase() | 使用默认语言环境的规则将此 String 中的所有字符都转换为小写。 |
41 | String toLowerCase(Locale locale) | 使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。 |
42 | String toString() | 返回此对象本身(它已经是一个字符串!)。 |
43 | String toUpperCase() | 使用默认语言环境的规则将此 String 中的所有字符都转换为大写。 |
44 | String toUpperCase(Locale locale) | 使用给定 Locale 的规则将此 String 中的所有字符都转换为大写。 |
45 | String trim() | 返回字符串的副本,忽略前导空白和尾部空白。 |
46 | static String valueOf(primitive data type x) | 返回给定data type类型x参数的字符串表示形式。 |
47 | contains(CharSequence chars) | 判断是否包含指定的字符系列。 |
48 | isEmpty() | 判断字符串是否为空。 |
下面讲解几个常用的方法
截取(提取)子字符串
1. substring(int beginIndex)
提取从beginIndex位置开始至结尾处的字符串部分。调用时,括号中是需要提取字符串的开始位置,方法的返回值是提取的字符串。
String str = "我爱学习,我快乐!";
String result = str.substring(5);
System.out.println(result); // 输出:我快乐
2. substring(int beginIndex,int endIndex)
此方法中的 beginIndex 表示截取的起始索引,截取的字符串中包括起始索引对应的字符;endIndex 表示结束索引,截取的字符串中不包括结束索引对应的字符,如果不指定 endIndex,则表示截取到目标字符串末尾。该方法用于提取位置 beginIndex 和位置 endIndex 位置之间的字符串部分。
这里需要特别注意的是, 对于开始位置 beginIndex, Java 是基于字符串的首字符索引为 0 处理的,endIndex也是每个字符的开始位置为基准,如图 1 所示。
示例
public static void main(String[] args) {
String str = "我爱学习,我快乐!";
String result = str.substring(3,4);
System.out.println(result); // 输出:习
}
字符串分割
String 类的split() 方法可以按指定的分割符对目标字符串进行分割,分割后的内容存放在字符串数组中。该方法主要有如下两种重载形式。
1. split(String sign)
例如:str.split(String sign)
- str 为需要分割的目标字符串。
- sign 为指定的分割符,可以是任意字符串。
2. split(String sign,int limit)
例如:str.split(String sign,int limit)
- str 为需要分割的目标字符串。
- sign 为指定的分割符,可以是任意字符串。
- limit 表示分割后生成的字符串的限制个数,如果不指定,则表示不限制,直到将整个目标字符串完全分割为止。
使用分隔符注意如下:
1)“.”和“|”都是转义字符,必须得加“\”。
- 如果用“.”作为分隔的话,必须写成
String.split("\\.")
,这样才能正确的分隔开,不能用String.split(".")
。 - 如果用“|”作为分隔的话,必须写成
String.split("\\|")
,这样才能正确的分隔开,不能用String.split("|")
。
2)如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“username=? and password =? or del_flag=?”,把三个都分隔出来,可以用String.split("and|or")
。
关于String类的使用,更多的是需要在实际应用中总结和积累,这里就先不一一介绍了。后续使用和课程中运用到时再做讲解。