Java 简明教程

Java - String Class

Strings 在广泛用于 Java programming 中,是字符序列。在 Java 编程语言中,字符串被视为 objects

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

Creating Strings

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

String greeting = "Hello world!";

每当编译器在代码中遇到字符串文字时,都会使用其值创建 String 对象,在本例中为“ Hello world!”。

与任何其他对象一样,您可以使用*new*关键字和 constructor创建 String 对象。String 类有 11 个构造方法,您可以使用它们通过不同的来源提供字符串的初始值,例如字符数组。

Example to Create Strings in Java

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 );
   }
}
hello.

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

String Length

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

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

Example to Get String Length in Java

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 );
   }
}

这会产生以下结果 −

String Length is : 17

Concatenating Strings

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

string1.concat(string2);

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

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

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

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

结果 −

"Hello, world!"

让我们看以下示例 −

Example to Concatenate Strings in Java

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 Format Strings

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

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

Example to Create Formatted Strings in Java

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);

Java String Class Methods

以下是 String class in Java 的内建方法及其语法和用法 −

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

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

11

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

12

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

13

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

14

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

15

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

16

static String format(Locale l, String format, Object…​ args) 此方法使用指定的国家/地区、格式字符串和参数返回格式化字符串。

17

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

18

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

19

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

20

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

21

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

22

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

23

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

24

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

25

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

26

int indexOf(String str, int fromIndex) 此方法返回此字符串中第一次出现指定子字符串的索引,从指定索引开始。

27

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

28

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

29

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

30

int lastIndexOf(int ch, int fromIndex) 此方法返回此字符串中最后出现指定字符的索引,从指定索引处开始向后搜索。

31

int lastIndexOf(String str) 此方法返回此字符串中指定子串最右边出现处的索引。

32

int lastIndexOf(String str, int fromIndex) 此方法返回此字符串中最后出现指定子串的索引,从指定索引处开始向后搜索。

33

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

34

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

35

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

36

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

37

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

38

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

39

String replace(CharSequence target, CharSequence replacement) 此方法用指定的文字替换序列替换此字符串中与文字目标序列匹配的每个子串。

40

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

41

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

42

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

43

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

44

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

45

boolean startsWith(String prefix, int toffset) 此方法测试从指定索引开始的此字符串的子串是否以指定的前缀开头。

46

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

47

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

48

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

49

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

50

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

51

String toLowerCase(Locale locale) 此方法使用指定 Locale 的规则将此 String 中的所有字符转换成小写。

52

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

53

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

54

String toUpperCase(Locale locale) 此方法使用指定 Locale 的规则将此 String 中的所有字符转换成大写。

55

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

56

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

57

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

58

static String valueOf(char[] data) 此方法返回字符数组参数的字符串表示形式。

59

static String valueOf(char[] data, int offset, int count) 此方法返回字符数组参数的特定子数组的字符串表示形式。

60

static String valueOf(double d) 此方法返回双精度参数的字符串表示形式。

61

static String valueOf(float f) 此方法返回浮点数参数的字符串表示形式。

62

static String valueOf(int i) 此方法返回整型参数的字符串表示形式。

63

static String valueOf(long l) 此方法返回长整型参数的字符串表示形式。

64

static String valueOf(Object obj) 此方法返回对象参数的字符串表示形式。