Java String.toCharArray() 方法

2025 年 3 月 24 日 | 4 分钟阅读

Java 字符串是不可变的。这意味着一旦创建,就无法更改其值。由于字符数组是可变的,因此在需要处理字符串内容时,将其转换为字符数组会很有用。将字符串转换为字符数组后,我们可以对单个字符进行任何必要的修改,如果需要,还可以创建一个新字符串。

Java String.toCharArray() 方法将此字符串转换为字符数组。它返回一个新创建的字符数组;其长度与此字符串相同,并且其内容已使用此字符串中的字符进行初始化。

它提供了一种简单的方式来访问和遍历字符串中的每个字符,当我们想操作单个字符时非常有用。生成的字符数组的长度与原始字符串相同,并包含字符串原始序列中字符的相同副本。此技术对于解析、查找和更改字符串中的字符等多种任务都很有用。

内部实现

签名

下面给出了 String toCharArray() 方法的签名或语法

返回值

字符数组

Java String.toCharArray() 方法示例

示例

编译并运行

输出

hello

说明

toCharArray() 函数在提供的 Java 代码的 StringToCharArrayExample 类中定义的主方法中进行了演示。第一步是声明一个值为 "hello" 的字符串 s1。将 s1 通过 toCharArray() 方法,将其转换为字符数组 ch。通过 for 循环遍历字符数组中的每个字符,并将每个字符打印到控制台,不带任何空格或换行符,从而实质上重复了原始字符串。此示例演示了如何通过将其转换为字符数组来单独访问字符串中的每个字符。

Java String.toCharArray() 方法示例 2

让我们再看一个 char 数组的示例。它是一个有用的方法,可以在不编写任何自定义代码的情况下从字符串返回 char 数组。

示例

编译并运行

输出

Char Array length: 21
Char Array elements: 
W
e
l
c
o
m
e
 
t
o
 
t
p
o
i
n
t
t
e
c
h

说明

提供的 Java 代码定义了一个名为 StringToCharArrayExample2 的类,其 main() 方法展示了如何将字符串转换为字符数组,然后操作该数组。字符串 s1 的初始值是 "Welcome to TpointTech"。此字符串将使用 toCharArray() 方法转换为字符数组 (ch)。

变量 len 包含字符数组的长度。然后代码打印字符数组的长度和元素。每次将一个字符打印在新的一行上时,for 循环都会遍历字符数组的每个元素。该示例演示了如何将字符串转换为字符数组并计算其长度,以及如何单独访问和显示字符串中的每个字符。

Java String.getChars() 方法

String.getChars() 方法也可用于将字符从字符串复制到字符数组。与 toCharArray() 不同,此方法允许指定要复制的字符的起始和结束位置。

示例

编译并运行

输出

Copied characters: 
Hello

说明

StringGetCharsExample 类演示了使用 String.getChars() 方法将字符串中的特定字符范围复制到字符数组中。主方法定义了一个值为 "Hello World" 的字符串 s1,并创建了一个长度为 5 的字符数组 ch。getChars() 方法用于将 s1 的前五个字符复制到 ch 中,从索引 0 开始。最后,一个 for-each 循环遍历字符数组,将每个字符打印到控制台。该示例展示了如何使用 getChars() 选择性地复制和访问字符串字符的某一部分。

结论

要快速轻松地将 Java 文本转换为字符数组,请使用 toCharArray() 函数。此方法让您可以轻松访问字符串中的每个字符,这在需要操作单个字符时尤其有用。该过程会构建一个新的字符数组,其长度和内容与原始字符串相匹配。

有几种方法可以使用 String.getChars() 方法将字符串转换为字符数组,每种方法都有其独特的好处。虽然 charAt() 提供了对单个字符检索的精细控制,但 getChars() 允许您复制特定的字符范围。

根据具体情况,使用 toCharArray()、getChars() 和 charAt() 方法在性能上可能会有不同的影响。toCharArray() 会复制所有字符并创建一个新的字符数组,因此对于大字符串可能会占用大量内存。由于其更大的灵活性,getChars() 可以通过启用选择性复制来节省处理时间和内存。

然而,由于 charAt() 是逐个检索字符,因此在循环中使用它处理大字符串时可能会变慢,因为它会进行重复的方法调用。这是因为它在检索少量字符时效率更高。