java - 如何将多个字符添加到字符数组中的一个索引?
问题描述
我目前正在尝试创建一个函数,其中我的输入是一个字符串,例如“AABBCCDDEE”,该函数输出一个字符串数组“AA”“BB”“CC”等等。
public static char[] stringSplitter(final String input) {
String[] strarray = new String[input.length()];
if (input == null) {
return null;
}
char[] chrarray = input.toCharArray();
char[] outputarray = new char[input.length()];
int j = 0;
for (int i = 0; i < chrarray.length; i++) {
char chr = chrarray[i];
System.out.print(chr);
outputarray[j] = chrarray[i]; //here i need to find a way to add the characters to the index at j if the preceding characters are equal
if (i + 1 < input.length() && chrarray[i + 1] != chr) {
j++;
outputarray[j] = chrarray[i + 1];
System.out.println(" ");
}
}
}
解决方案
数组是固定长度的,因此您不能对数组执行此操作,除非您预先分配一个有足够额外空间的数组(这需要通过字符串来找出您需要多少额外空间)。
相反,请考虑使用 aStringBuilder
作为输出,完成后您可以将其转换为char
数组。
推荐阅读
- amazon-web-services - 使用不是主键的索引的 Dynamo DB 查询
- javascript - 如何使用 JavaScript 在特定部分中获取随机 css 左侧和顶部值?
- c# - 提交后ASP.Net白页死机
- scala - Scala - 为什么函数返回 Unit 而不是 RDD?
- sql - 从数据库中获取所有表,如果表有一些记录存在
- database - 此 EER 图是否适合我的应用程序?
- rocket.chat - 在 Android Studio 3.2-beta 1 中运行 Rocket chat kotlin sdk 时,gradle build 失败并抛出错误
- php - jquery min form-error 类在 cakephp 模型验证后隐藏我的表单控件
- c++ - 如何关闭一大块 Lua 代码
- mysql - 具有修改的列值而不重新创建表的范围分区表