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

Java 如何以特定方式交换字符串中的两个数字?,java,android,string,sorting,Java,Android,String,Sorting,嗨,我想以特定的方式交换字符串形式的数字 例如: 如果我有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]; c

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

例如:

如果我有
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个数字都这样做了,但这是一种静态方式。我知道这不是一个正确的方法。我也想动态地做这件事。还有其他的方法来实现吗


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

看看一些排序算法,如冒泡排序(如果是一组小数字)、合并排序、快速排序和其他。这就是你想要做的——排序。

看看一些排序算法,比如冒泡排序(如果是一个小的数字集)、合并排序、快速排序和其他。这就是您似乎想要做的--排序。

编辑:-

AB43DC657
在最近的编辑中,您似乎希望交换字符串中的连续字符对。在这种情况下,您需要一个
循环

请尝试以下代码:-

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);
在循环中,我将
I
增加了
2
,因为您在每次迭代中考虑了
两个元素


旧答案:-

AB43DC657
只需3个步骤:-

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

编辑:-

AB43DC657
在最近的编辑中,您似乎希望交换字符串中的连续字符对。在这种情况下,您需要一个
循环

请尝试以下代码:-

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);
在循环中,我将
I
增加了
2
,因为您在每次迭代中考虑了
两个元素


旧答案:-

AB43DC657
只需3个步骤:-

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


这不是交换,而是排序。您想用哪种方式交换字符串?@RohitJain是的,正确,谢谢@伊姆兰汗:我想把每一对都换成一对string@juned:请参阅@Rohit Jain Answer这将帮助您更多这不是交换,而是排序。您想以哪种方式交换字符串?@Rohit Jain是的,正确,谢谢@伊姆兰汗:我想把每一对都换成一对string@juned:请参阅@Rohit Jain Answer这将帮助您更多感谢您的回复,我没有收到这行
Arrays.sort不会返回已排序的数组。它将数组排序到位
能详细解释吗?@RohitJain你比我快!回答得很好,但没有为他们准确编码。@juned。。在执行数组排序时,不需要将结果存储在数组中。它将自动对数组排序。使用
Array.sort
@juned.后只需打印即可。。xagyg为我发布的算法提供了一个实现。现在你们两个都有了。你现在可以很容易地理解它了。@juned。所以,您确实希望排序,而不是交换每个数字对。您希望-
4352678
的输出是什么?感谢您的回复,我没有收到这一行
Arrays.sort不会返回已排序的数组。它将数组排序到位
能详细解释吗?@RohitJain你比我快!回答得很好,但没有为他们准确编码。@juned。。在执行数组排序时,不需要将结果存储在数组中。它将自动对数组排序。使用
Array.sort
@juned.后只需打印即可。。xagyg为我发布的算法提供了一个实现。现在你们两个都有了。你现在可以很容易地理解它了。@juned。所以,您确实希望排序,而不是交换每个数字对。您希望为-
4352678
提供什么输出?