Java - 字符串类



描述

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

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

创建字符串

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

String greeting = "Hello world!";

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

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

从字符数组创建字符串示例

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.

注意 - String 类是不可变的,因此一旦创建了 String 对象,就无法更改它。如果需要对字符串字符进行大量修改,则应使用 StringBuffer & StringBuilder 类。

字符串长度

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

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

获取字符串长度示例

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

连接字符串

String 类包含一个用于连接两个字符串的方法:

string1.concat(string2);

它返回一个新的字符串,该字符串是 string1,string2 附加到其末尾。你也可以将 concat() 方法与字符串字面量一起使用,如下所示:

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

字符串通常使用 + 运算符连接,如下所示:

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

结果为:

"Hello, world!"

让我们看看下面的例子:

连接字符串示例

public class StringDemo {

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

这将产生以下结果:

输出

Dot saw I was Tod

创建格式化字符串

你拥有 printf() 和 format() 方法来打印具有格式化数字的输出。String 类有一个等效的类方法 format(),它返回一个 String 对象而不是 PrintStream 对象。

使用 String 的静态 format() 方法,你可以创建一个可以重复使用的格式化字符串,而不是一次性打印语句。例如,而不是:

格式化字符串示例

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 类支持的方法列表:

序号 方法和描述
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)

此方法测试此字符串是否以指定的 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)

此方法返回此 String 中相对于给定索引偏移 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)

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

28 String replaceFirst(String regex, String replacement)

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

29 String[] split(String regex)

此方法根据给定正则表达式的匹配项拆分此字符串。

30 boolean startsWith(String prefix)

此方法测试此字符串是否以指定的 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)

此方法返回布尔参数的字符串表示形式。

广告