【问题标题】:How to swap the two numbers in string in specific way?如何以特定方式交换字符串中的两个数字?
【发布时间】:2012-12-02 14:59:33
【问题描述】:

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

例如:

如果我有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 个数字都这样做了,但它是一种静态方式。而且我知道这不是正确的方法。我也想动态地执行此操作。还有其他方法可以实现吗?

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

【问题讨论】:

  • 那不是交换,那是排序。
  • 你想用哪种方式交换你的字符串?
  • @RohitJain 是的,谢谢!
  • @imrankhan 我想交换字符串中的每一对
  • @juned : 见@Rohit Jain 回答这将帮助你更多

标签: java android string sorting


【解决方案1】:

编辑:-

从您的最新编辑中,您似乎想要交换字符串中的连续字符对。在这种情况下,您需要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 步:-

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

【讨论】:

  • 感谢回复,我没有收到这条线Arrays.sort does not return the sorted array. It sorts the array in place可以详细解释一下吗?
  • @RohitJain 你打败了我!很好的答案,无需为他们准确编码。
  • @juned.. 当您执行 Arrays.sort 时,您不需要将结果存储在数组中。它将自动对您的数组进行排序。使用Array.sort后打印即可。
  • @juned.. xagyg 给出了我发布的算法的实现。现在你两者都有。你现在可以很容易地理解它了。
  • @juned。所以,你真的想要排序而不是交换每个数字对。你想要什么输出 - 4352678
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 1970-01-01
    相关资源
    最近更新 更多