您的位置 首页 java

在Java中将String转换为char

概述

String 是一种常见的类型,而 char Java 中的基本类型。

在本教程中,我们将探讨如何在 Java 中将 STRING 对象转换为 char。

问题介绍

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

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

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

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

对于案例 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() 方法调用会抛出 StringIndexOutOfBounds Exception (下标越界异常):

 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。

文章来源:智云一二三科技

文章标题:在Java中将String转换为char

文章地址:https://www.zhihuclub.com/180743.shtml

关于作者: 智云科技

热门文章

网站地图