0

嗨,我想以特定方式交换字符串形式的数字。

例如 :

如果我有,10325476那么它应该返回01234567我迄今为止尝试过的任何东西,我只是交换了字符串中的两个数字对。

编辑
如果我有01AB3423那么答案应该是10BA4332以下是我当前的实现,它给了我想要的输出。

char temp1 = c1[0];
c1[0] = c1[1];
c1[1] = temp1;

char temp2=c1[2];
c1[2]=c1[3];
c1[3]=temp2;

char temp3=c1[4];
c1[4]=c1[5];
c1[5]=temp3;

char temp4=c1[6];
c1[6]=c1[7];
c1[7]=temp4;

我已经为所有 8 个数字做了这个,但它是一种静态方式。而且我知道这不是正确的方法。我也想动态地这样做。还有其他方法可以实现吗?

任何想法和建议将不胜感激。

4

2 回答 2

3

编辑: -

从您的最新编辑中,您似乎想要交换字符串中的连续字符对。在这种情况下,您将需要一个loop

试试这个代码: -

String str = "BA34CD567";
char[] arr = str.toCharArray();

for (int i = 0; i < arr.length - 1; i += 2) {
    char temp = arr[i];
    arr[i] = arr[i + 1];
    arr[i + 1] = temp;
}

System.out.println(arr);

输出 : -

AB43DC657

我在循环中增加i了 by 2,因为您正在考虑two elements每次迭代。


旧答案:-

只需 3 个步骤:-

  • 将您的字符串转换为 char 数组。( str.toCharArray())
  • 对您的 char 数组进行排序。( Arrays.sort(arr))。记住,Arrays.sort不返回排序后的数组。它对数组进行排序。
  • 然后打印你的数组。(嗯,你知道怎么做)
于 2012-12-02T15:02:35.233 回答
0

看看一些排序算法,例如冒泡排序(如果是一小组数字)、归并排序快速排序等。这就是您似乎想要做的——排序

于 2012-12-02T15:02:14.580 回答