如何以特定方式交换字符串中的两个数字?

时间:2012-12-02 14:59:34

标签: java android string sorting

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

例如:

如果我有10325476那么它应该返回01234567无论我到目前为止尝试了什么,我只是交换了String中的两个数字对。

修改
如果我有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个号码做了这个,但它是静态的。我知道这不是一个正确的方法。我也想动态地这样做。还有其他方法可以实现吗?

任何想法和建议都将受到赞赏。

2 个答案:

答案 0 :(得分: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增加了2,因为您在每次迭代时都在考虑two elements


旧答案: -

只需3步: -

  • 将字符串转换为char数组。 (str.toCharArray()
  • 对char数组进行排序。 (Arrays.sort(arr))。请记住,Arrays.sort不会返回已排序的数组。它会对数组进行排序。
  • 然后打印您的阵列。 (嗯,你知道怎么做)

答案 1 :(得分:0)

看看一些排序算法,例如冒泡排序(如果它是一小组数字),合并排序 quicksort ,和其他人。这就是你想要做的事情 - 排序