首页 » Web前端 » phpstring转char技巧_在Java中将String转换为char

phpstring转char技巧_在Java中将String转换为char

访客 2024-12-09 0

扫一扫用手机浏览

文章目录 [+]

在本教程中,我们将磋商如何在 Java 中将 String 工具转换为 char。

问题先容

我们知道一个 char 只能包含一个字符。
但是,一个 String 工具可以包含多个字符。

phpstring转char技巧_在Java中将String转换为char

因此,我们的教程将涵盖两种情形:

phpstring转char技巧_在Java中将String转换为char
(图片来自网络侵删)

源字符串是一个单字符串。

源字符串是一个多字符串。

对付案例 1,我们可以轻松地将单个字符作为 char 获取。
例如,假设这是我们的输入:

String STRING_a = "a";

转换后,我们期望有一个字符“a”。

对付情形 2,如果源 String 是一个多字符的字符串,并且我们仍旧希望得到一个单个字符作为结果,我们必须剖析选择所需字符的需求,例如第一个、末了一个或 n- 第一个字符。

在本教程中,我们将先容一个更通用的办理方案。
我们将源字符串转换为一个 char 数组,该数组包含字符串中的每个字符。
这样,我们可以根据须要选择任何元素。

我们将利用 STRING_Rejoice 作为输入示例:

String STRING_Rejoice = "Rejoice";

那么接下来,让我们看看实际的案例效果。

单字符串

Java 的 String 类供应 charAt() 从输入字符串中获取第 n 个字符(从 0 开始)作为 char。
因此,我们可以直接调用getChar(0)方法将单个字符串转换为char:

assertEquals('a', STRING_a.charAt(0));

但是,我们该当把稳,如果输入是空字符串,则 charAt() 方法调用会抛出 StringIndexOutOfBoundsException(下标越界非常):

assertThrows(StringIndexOutOfBoundsException.class, () -> "".charAt(0));

因此,在调用 charAt() 方法之前,我们该当检讨输入字符串是否为空或空。

多字符串

我们已经学会了利用 charAt(0) 将单个字符串转换为 char。
如果输入是一个多字符的字符串,并且我们确切地知道我们想要将哪个字符转换为字符,我们仍旧可以利用 charAt() 方法。
例如,我们可以从输入字符串“Rejoice”中获取第四个字符('o'):

assertEquals('o', STRING_Rejoice.charAt(3));

此外,我们可以利用 String.toCharArray() 来获取包含所有字符的 char[] 数组:

assertArrayEquals(new char[] { 'R', 'e', 'j', 'o', 'i', 'c', 'e' }, STRING_Rejoice.toCharArray());

值得一提的是 toCharArray() 方法也适用于空字符串输入。
它返回一个空字符数组作为结果:

assertArrayEquals(new char[] {}, "".toCharArray());

除了 toCharArray(),String.getChars() 可以从给定的 String 中提取连续的字符到一个 char 数组中。
该方法吸收四个参数:

srcBegin - 字符串中第一个字符的索引,包括在内

srcEnd – 要复制的字符串中末了一个字符的索引,不包含

dst - 目标数组,这是我们的结果

dstBegin – 目标数组中的起始偏移量。
我们将通过一个例子来谈论这个问题。

首先,让我们从字符串“Rejoice”中提取“joi”并将其添补到预定义的 char 数组中:

@Test public void testGetChars(){ String STRING_Rejoice = "Rejoice"; char[] joi = new char[3]; STRING_Rejoice.getChars(2, 5, joi, 0); assertArrayEquals(new char[] { 'j', 'o', 'i' }, joi); }

如上面的测试所示,要调用 getChars(),我们首先该当有一个 char 数组来保存结果。

在示例中,当我们调用 getChars() 时,我们将 0 通报给 dstBegin。
这是由于我们希望转换后的结果从数组 joi中的第一个元素开始。

当然,有时,我们希望结果覆盖数组的中间部分。
然后我们可以将 dstBegin 设置为所需的值。

接下来,让我们看另一个将“joi”转换为字符并从第二个(索引=1)元素覆盖目标数组的示例:

@Test public void testGetChars2(){ String STRING_Rejoice = "Rejoice"; char[] anotherArray = new char[] { '#', '#', '#', '#', '#', '#' }; STRING_Rejoice.getChars(2, 5, anotherArray, 1); assertArrayEquals(new char[] { '#','j', 'o', 'i', '#', '#'}, anotherArray); }

因此,正如我们所见,我们将 dstBegin=1 通报给该方法并得到预期的结果。

结论

在本文中,我们学习了如何在 Java 中将 String 转换为 char。

相关文章