网站首页 > 精选教程 正文
概述
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。
猜你喜欢
- 2024-11-03 4.5 Java的字符串操作和方法 java字符串使用教学
- 2024-11-03 一文教你Java字符串处理(String,StringBuffer...
- 2024-11-03 「Java工具类」Jackson工具类,json字符串转各种对象或者集合
- 2024-11-03 java int类型转char类型总结 java将int转换为char
- 2024-11-03 《JAVA编程思想》5分钟速成:第13章(字符串)
- 2024-11-03 Java字符串操作的函数式方法 java中字符串的操作
- 2024-11-03 Java基于代码实战的字符流父类、字符转换流、缓冲字符流、过滤流
- 2024-11-03 7. 反转整数(LeetCode 题解) 反转整数python
- 2024-11-03 JAVA 基本类型之间的转换(新手) java基础类型转换
- 2024-11-03 Java读取制表符文本转换为JSON java读取表格
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)