Java 简明教程

Java - Strings Class

Description

在 Java 编程中广泛使用的字符串是字符序列。在 Java 编程语言中,字符串被视为对象。

Java 平台提供了 String 类来创建和操作字符串。

Creating Strings

创建字符串的最直接的方法是编写 −

String greeting = "Hello world!";

每当在代码中遇到字符串文字时,编译器都会创建一个 String 对象,其值在此情况下为“Hello world!”。

与任何其他对象一样,您可以使用 new 关键字和构造函数创建 String 对象。String 类有 11 个构造函数,允许您使用不同的来源(如字符数组)来提供字符串的初始值。

Creating String from Char Array Example

public class StringDemo {

   public static void main(String args[]) {
      char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
      String helloString = new String(helloArray);
      System.out.println( helloString );
   }
}

这会产生以下结果 −

Output

hello.

Note - String 类是不可变的,所以一旦创建了 String 对象就无法对其进行更改。如果有必要对字符 Strings 进行大量修改,那么您应该使用 String Buffer & String Builder 类。

String Length

用于获取有关对象的信息的方法称为 accessor methods。您可以与字符串一起使用的一个访问器方法是 length() 方法,该方法返回字符串对象中包含的字符数。

以下程序是 length() 方法 String 类的一个示例。

Getting Length of the String Example

public class StringDemo {

   public static void main(String args[]) {
      String palindrome = "Dot saw I was Tod";
      int len = palindrome.length();
      System.out.println( "String Length is : " + len );
   }
}

这会产生以下结果 −

Output

String Length is : 17

Concatenating Strings

String 类包括用于连接两个字符串的方法 −

string1.concat(string2);

这会返回一个新的字符串,该字符串是 string1 和 string2 添加到其末尾的结果。您还可以在字符串文字中使用 concat() 方法,例如 −

"My name is ".concat("Zara");

字符串更常与 + 运算符连接,如 −

"Hello," + " world" + "!"

结果 −

"Hello, world!"

让我们看以下示例 −

Concatenating String Example

public class StringDemo {

   public static void main(String args[]) {
      String string1 = "saw I was ";
      System.out.println("Dot " + string1 + "Tod");
   }
}

这会产生以下结果 −

Output

Dot saw I was Tod

Creating Formatted Strings

可以使用 printf() 和 format() 方法打印带格式数字的输出。String 类有一个等效类方法 format(),它返回一个 String 对象,而不是一个 PrintStream 对象。

使用 String 的 static format() 方法允许您创建一个可重用的格式化字符串,而不是一个一次性打印语句。例如,而不是 −

Formatted String Example

System.out.printf("The value of the float variable is " +
   "%f, while the value of the integer " +
   "variable is %d, and the string " +
   "is %s", floatVar, intVar, stringVar);

您可以编写 −

String fs;
fs = String.format("The value of the float variable is " +
   "%f, while the value of the integer " +
   "variable is %d, and the string " +
   "is %s", floatVar, intVar, stringVar);
System.out.println(fs);

String Methods

以下是 String 类支持的方法的列表 −

Sr.No.

Method & Description

1

char charAt(int index) 此方法返回指定索引处的 char 值。

2

int codePointAt(int index) 此方法返回指定索引处的字符(Unicode 代码点)。

3

int codePointBefore(int index) 此方法返回指定索引之前的字符(Unicode 代码点)。

4

int codePointCount(int beginIndex, int endIndex) 此方法返回此 String 指定文本范围中的 Unicode 代码点的数量。

5

int compareTo(String anotherString) 此方法按字典顺序比较两个字符串。

6

int compareToIgnoreCase(String str) 此方法按字典顺序比较两个字符串,忽略大小写差异。

7

String concat(String str) 此方法连接指定的字符串到此字符串的末尾。

8

boolean contains(CharSequence s) 当且仅当字符串包含指定的 char 值序列时,此方法返回 true。

9

boolean contentEquals(CharSequence cs) 此方法将此字符串与指定的 CharSequence 比较。

10

static String copyValueOf(char[] data) 此方法返回一个表示指定数组中字符序列的 String。

11

boolean endsWith(String suffix) 此方法测试此字符串是否以指定的结尾结束。

12

boolean equals(Object anObject) 此方法将此字符串与指定的对象比较。

13

boolean equalsIgnoreCase(String anotherString) 此方法将此 String 与另一个 String 比较,不考虑大小写。

14

static String format(String format, Object…​ args) 此方法使用指定格式字符串和参数返回格式化字符串。

15

byte[] getBytes() 此方法使用平台的默认字符集将此 String 编码为一系列字节,结果存储在新的字节数组中。

16

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 此方法将此字符串中的字符复制到目标字符数组中。

17

int hashCode() 此方法返回此字符串的哈希码。

18

int indexOf(int ch) 此方法返回此字符串中第一次出现指定字符的索引。

19

String intern() 此方法返回字符串对象的规范表示形式。

20

boolean isEmpty() 如果且仅当 length() 为 0 时,此方法返回 true。

21

int lastIndexOf(int ch) 此方法返回此字符串中最后出现指定字符的索引。

22

int length() 此方法返回此字符串的长度。

23

boolean matches(String regex) 此方法告知此字符串是否与给定的正则表达式匹配。

24

int offsetByCodePoints(int index, int codePointOffset) 此方法返回此字符串中距离给定索引偏移 codePointOffset 个代码点的索引。

25

boolean regionMatches(int toffset, String other, int ooffset, int len) 此方法测试两个字符串区域是否相等。

26

String replace(char oldChar, char newChar) 此方法返回一个新字符串,该字符串是由用 newChar 替换此字符串中所有出现 oldChar 的结果。

27

String replaceAll(String regex, String replacement) 此方法用给定的替换替换此字符串中与给定正则表达式匹配的每个子串。

28

String replaceFirst(String regex, String replacement) 此方法用给定的替换替换此字符串中第一个与给定正则表达式匹配的子串。

29

String[] split(String regex) 此方法围绕给定正则表达式的匹配分割此字符串。

30

boolean startsWith(String prefix) 此方法测试此字符串是否以指定的前缀开头。

31

CharSequence subSequence(int beginIndex, int endIndex) 此方法返回一个新字符序列,它是此序列的子序列。

32

String substring(int beginIndex) 此方法返回一个作为此字符串子串的新字符串。

33

char[] toCharArray() 此方法将此字符串转换成一个新的字符数组。

34

String toLowerCase() 此方法使用默认区域设置的规则将此 String 中的所有字符转换成小写。

35

String toString() 此方法返回字符串本身。

36

String toUpperCase() 此方法使用默认区域设置的规则将此 String 中的所有字符转换成大写。

37

String trim() 此方法返回一个字符串副本,其中去掉了前导和尾随空白。

38

static String valueOf(boolean b) 此方法返回 boolean 参数的字符串表示形式。