Java笔记 - String类的常用方法

Java提供的API和前面几篇文章中涉及到的技术已经对字符串的支持已经很完善了,多使用API中提供的各种方法,并且在细节上注意效率问题,会让我们对于字符串的处理更加得心应手,下面列举了一些常用的API,更详细的用法和更多的重载方法可以查阅JDK文档。

String

public String()

初始化一个新创建的 String 对象,使其表示一个空字符序列。注意,由于 String 是不可变的,所以无需使用此构造方法。

同时String的构造器提供了各种丰富的重载方法,详细查看API文档

length

public int length()

返回此字符串的长度。长度等于字符串中 Unicode 代码单元的数量。

charAt

public char charAt(int index)

返回指定索引处的 char 值。索引范围为从 0length() - 1。序列的第一个 char 值位于索引 0 处,第二个位于索引 1 处,依此类推,这类似于数组索引。如果索引指定的 char 值是代理项,则返回代理项值。

getChars

public void getChars(int srcBegin,
int srcEnd,
char[] dst,
int dstBegin)

将字符从此字符串复制到目标字符数组。要复制的第一个字符位于索引 srcBegin 处;要复制的最后一个字符位于索引 srcEnd-1 处(因此要复制的字符总数是 srcEnd-srcBegin)。要复制到 dst 子数组的字符从索引 dstBegin 处开始,并结束于索引:

dstbegin + (srcEnd-srcBegin) - 1

getBytes

public byte[] getBytes(String charsetName)
throws UnsupportedEncodingException

使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。当此字符串不能使用给定的字符集编码时,此方法的行为没有指定。如果需要对编码过程进行更多控制,则应该使用 CharsetEncoder 类。

toCharArray

public char[] toCharArray()

将此字符串转换为一个新的字符数组。

equals

public boolean equals(Object anObject)

将此字符串与指定的对象比较。当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true

equalsIgnoreCase

public boolean equalsIgnoreCase(String anotherString)

将此 String 与另一个 String 比较,不考虑大小写。如果两个字符串的长度相同,并且其中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的。

compareTo

public int compareTo(String anotherString)

按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只在方法 equals(Object) 返回 true 时才返回 0

contains

public boolean contains(CharSequence s)

当且仅当此字符串包含指定的 char 值序列时,返回 true。

contentEquals

public boolean contentEquals(CharSequence cs)

将此字符串与指定的 CharSequence 比较。当且仅当此 String 与指定序列表示相同的 char 值序列时,结果才为 true

equalsIgnoreCase

public boolean equalsIgnoreCase(String anotherString)

将此 String 与另一个 String 比较,不考虑大小写。如果两个字符串的长度相同,并且其中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的。在忽略大小写的情况下,如果下列至少一项为 true,则认为 c1c2 这两个字符相同。

  • 这两个字符相同(使用 == 运算符进行比较)。
  • 对每个字符应用方法 Character.toUpperCase(char) 生成相同的结果。
  • 对每个字符应用方法 Character.toLowerCase(char) 生成相同的结果。

**boolean regionMatches**(boolean ignoreCase, int toffset, String other, int ooffset, int len) 测试两个字符串区域是否相等。 **boolean regionMatches**(int toffset, String other, int ooffset, int len) 测试两个字符串区域是否相等。 **boolean startsWith**(String prefix) 测试此字符串是否以指定的前缀开始。 **boolean startsWith**(String prefix, int toffset) 测试此字符串从指定索引开始的子字符串是否以指定前缀开始。 **boolean endsWith**(String suffix) 测试此字符串是否以指定的后缀结束。 **indexOf**(int ch) 返回指定字符在此字符串中第一次出现处的索引。 **indexOf**(int ch, int fromIndex) 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。 **lastIndexOf**(int ch) 返回指定字符在此字符串中最后一次出现处的索引。 **lastIndexOf**(int ch, int fromIndex) 返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。 **String substring**(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。 **String substring**(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。 **CharSequence subSequence**(int beginIndex, int endIndex) 返回一个新的字符序列,它是此序列的一个子序列。 **String concat**(String str) 将指定字符串连接到此字符串的结尾。 **String replace**(char oldChar, char newChar) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 **String toLowerCase**() 使用默认语言环境的规则将此 String 中的所有字符都转换为小写。 **String toLowerCase**(Locale locale) 使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。 **String trim**() 返回字符串的副本,忽略前导空白和尾部空白。 **valueOf**(boolean b) 返回 boolean 参数的字符串表示形式。 **String intern**() 返回字符串对象的规范化表示形式。

arthinking wechat
欢迎关注itzhai公众号