У меня есть программа ниже.Номера подкачки в строке
public class swapping {
public static void main(String[] args) {
String num = "31254";
int max = Integer.MIN_VALUE, maxIndex = 0;
for (int i = 0; i < num.length(); i++) {
if (num.charAt(i) > max) {
max = num.charAt(i);
maxIndex = i;
}
}
swap(num, num.charAt(0), maxIndex);
}
private static void swap(String num, char charAt, int maxIndex) {
System.out.println("number is " + num + " Initial char is " + charAt
+ " Maximum is " + maxIndex);
char t = charAt;
char s = num.charAt(maxIndex);
System.out.println("numbers:" + t + " " + s);
char temp = t;
t = s;
s = temp;
System.out.println("Final string after swap is " + num);
}
}
Здесь моя цель - получить максимальное число в строке, которая должна быть заменена первым номером в строке. т.е. я хочу преобразовать 31254
в 51234
. Но я не знаю, как это сделать.
number is 31254 Initial char is 3 Maximum is 3
numbers:3 5
Final string after swap is 31254
Здесь замена не завершается, предыдущий номер печатается. пожалуйста, дайте мне знать, как распечатать желаемый результат.
Благодаря
'Шар()' использовать 0 на основе индексов, так 'Шар (5)' является * упс * для ваша строка. –
Также обратите внимание, что этот 'charAt' обречен на неудачу, строка" 19 ", max = 9 .. –
Привет @RC, на основе вашего комментария, я обновил свой код, но здесь я все еще не могу поменять местами, он печатает тот же самый старый номер. – user3872094