如何基于指定分隔符索引将字符数组前半部分移动到数组末尾
实现思路
你要做的操作本质是基于分隔符位置的数组切片拼接,不需要引入额外工具类,直接通过两次循环分别给新数组赋值即可:
- 第一步:将原数组中分隔符之后的所有元素,按顺序赋值到新数组的起始位置
- 第二步:将原数组中开头到分隔符(含分隔符)的所有元素,按顺序拼接在新数组已赋值内容的后面
修正后完整代码
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); // 赋值分隔符之后的内容到新数组开头 int newArrIndex = 0; for (int i = indexDelimiter + 1; i < oldCharArray.length; i++) { newCharArray[newArrIndex] = oldCharArray[i]; newArrIndex++; } // 赋值分隔符及之前的内容到新数组末尾 for (int i = 0; i <= indexDelimiter; i++) { newCharArray[newArrIndex] = oldCharArray[i]; newArrIndex++; } // 输出结果 for (int i = 0; i < newCharArray.length; i++) { System.out.print(newCharArray[i]); } } }
代码说明
- 你原来的循环只做了单个元素的移动,所以只能把首字符移到末尾,现在改成按
indexDelimiter作为切片边界,直接批量移动整段内容 - 全程只用到原生数组的读写操作,没有引入任何集合类,符合你的要求
- 运行上述代码输出结果就是你需要的
World!, Hello
内容的提问来源于stack exchange,提问作者dftag
相关产品推荐
相关产品推荐

