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
提供什么输出?