Здравейте !
На задача за масиви съм,в която искат да се принтира масив с числа,разделени с интервал и запетайка,започвайки от най-голямото към най-малкото. Моля някой да помогне.Опитвам със String,join, но ми изброява числата без интервал и запетайка.
Ето го и моя код: https://pastebin.com/DjMWbdLL
Благодаря предварително !
Оправих се,благодаря
Здравей,
Имай предвид, че методът Collections.reverseOrder() сортира елементите на String масиви по азбучен ред, а не по математически ред, тъй като String масивите не познават числа.
Затова така написан кода, ще дава частично решение и грешки при някои тестове.
За да ползваш Collections.reverseOrder() ефективно, трябва да превърнеш масива в Integer-based. Тоест, след реда с line.split в твоя код, пишем:
Integer[] intArray = new Integer[strArray.length];
Така създаваме празен Integer масив със същия размер като този на нашия String масив. Сега трябва да го напълним с числа:
for (int i = 0; i < strArray.length; i++) {
intArray[i] = Integer.parseInt(strArray[i]);
}
Сега можем да ползваме Arrays.sort върху новия масив.
Оттук нататък можем да представим Integer-масива със запетайки, като прескачаме последния елемент, за да не добави запетайка след него:
for (int i = 0; i < numbers.length - 1; i++) {
System.out.print(intArray[i] + ", ");
}
И после представяме последния елемент допълнително, извън loop-a:
System.out.print(intArray[numbers.length-1]);
Тук не можем да ползваме String join(), защото новият ни масив е Integer.
Успех!
Поздрави,
Петър
Благодаря, Петър !
Винаги помагаш много !