如何使用 toCharArray() 交换 java 字符串中的 2 个字母?



我希望ab作为ba返回,但我的输出是a a. 我明白为什么我得到这个输出。 如果a[i] < a[j](如果第一个索引<第二个索引,这是真的,因为>

我只是无法弄清楚如何用数组交换这两个字母。

我该如何才能做到这一点?

public static void solution(String A) {
char[] a = A.toCharArray();
for(int i = 0; i < a.length; i++) {
for(int j = i + 1; j < a.length; j++) {
if(a[i] < a[j]) {
a[j] = a[i];
}
}
}
for(int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
}
public static void main(String args[]) {
String A = "ab";
solution(A);
}

您可以使用临时变量并将a[j]放入其中,然后用a[i]覆盖a[j],最后用存储在临时变量中的旧值a[j]覆盖a[i]

if (a[i] < a[j]) {
char temp = a[j];
a[j] = a[i];
a[i] = temp;
}

你真的想创建一个临时值来存储你的字符,但是如果你试图编写更少的代码并且不关心性能,你甚至可以在你的情况下反转字符串,而不是使用toCharArray,使用java的StringBuilder包。

import java.lang.*;
StringBuilder input = new StringBuilder;
input.append(A);
input = input.reverse();
System.out.print(input);

最新更新