您好我想以特定的方式交换字符串形式的数字。
例如:
如果我有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个号码做了这个,但它是静态的。我知道这不是一个正确的方法。我也想动态地这样做。还有其他方法可以实现吗?
任何想法和建议都将受到赞赏。
答案 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步: -
str.toCharArray()
)Arrays.sort(arr))
。请记住,Arrays.sort
不会返回已排序的数组。它会对数组进行排序。答案 1 :(得分:0)
看看一些排序算法,例如冒泡排序(如果它是一小组数字),合并排序, quicksort ,和其他人。这就是你想要做的事情 - 排序。