龙空技术网

在Java中将String转换为char

小王子向着标竿直跑 150

前言:

而今姐妹们对“string创建java”大概比较注重,咱们都想要分析一些“string创建java”的相关知识。那么小编在网络上汇集了一些关于“string创建java””的相关知识,希望看官们能喜欢,我们快快来了解一下吧!

概述

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() 方法调用会抛出 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。

标签: #string创建java