java - 如何根据特定索引将多个字符数组移动到数组的后面?
问题描述
我有一个字符串“你好,世界!” 我必须转换成一个字符数组。然后我找到了 char ',' 的索引——我想在其中创建一个包含“World!, Hello”的新 char 数组。
我已经将 char 数组的第一个索引移到了后面 - 这样它就会打印出“hello,World!H”。
如何使用我的变量 indexDelimiter 将其余的字符数组(以及“,”)移到后面?我一直在研究这个问题,我很困惑如何解决这个问题。
我不能使用 ListArray。我必须是一个数组。
public class ArrayTest {
public static void main(String[] args) {
String s = "Hello, World!";
char[] oldCharArray = s.toCharArray();
char[] newCharArray = new char[oldCharArray.length];
char delimiter = ',';
int indexDelimiter = new String(oldCharArray).indexOf(delimiter);
for (int i = 0; i < oldCharArray.length - 1; i++) {
newCharArray[i] = oldCharArray[i + 1];
}
newCharArray[oldCharArray.length - 1] = oldCharArray[0];
for (int i = 0; i < newCharArray.length; i++) {
System.out.print(newCharArray[i]);
}
// This prints out "ello, World!H" but I want " World!, Hello"
}
}
解决方案
这段代码会产生“World!,Hello”,看看是否满足你的需求。
public static void main(String args[]) {
String s = "Hello, World!";
char[] oldCharArray = s.toCharArray();
char[] newCharArray = new char[oldCharArray.length];
char delimiter = ',';
int indexDelimiter = new String(oldCharArray).indexOf(delimiter);
int i = 0;
for (i = 0; i < oldCharArray.length-indexDelimiter-1; i++) {
newCharArray[i] = oldCharArray[indexDelimiter + i + 1];
}
newCharArray[i] = delimiter;
i++;
int j = i;
while (i < oldCharArray.length) {
newCharArray[i] = oldCharArray[i - j];
i++;
}
System.out.println(newCharArray);
}
推荐阅读
- javascript - Javascript 触摸事件没有被触发
- android - 如何将自定义样式应用于 Facebook 登录按钮
- javascript - React Native 将生成的 javascript 包存储在哪里?
- excel - MS Word 表 - 请求的集合成员不存在
- python-3.x - 使用安全 SSL 套接字进行多处理
- odata - 如何在 UI5 应用程序中使用 oModel.read 查看单个条目
- java - 是否可以在没有用户操作的情况下上传文件,或者只是 html 中的对话框,角度?
- android - 为什么包含 firebase 引用时,android 应用程序在启动后立即崩溃?
- r - 计算向量中的最小值,其中最小值按连续顺序排列
- javascript - 单击按钮时我无法增加变量的值