首页 > 解决方案 > 如何根据特定索引将多个字符数组移动到数组的后面?

问题描述

我有一个字符串“你好,世界!” 我必须转换成一个字符数组。然后我找到了 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"
  }
}

标签: java

解决方案


这段代码会产生“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);
    }

推荐阅读