import java.util.*;
public class StrangeOrder {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] nums = scanner.nextLine().split(",");
List<Integer> result = new ArrayList<Integer>();
List<Integer> result2 = new ArrayList<Integer>();
for (int i = 0; i < nums.length; i++) {
if (Integer.parseInt(nums[i]) > 0) {
result.add(Integer.parseInt(nums[i]));
} else {
result2.add(Integer.parseInt(nums[i]));
}
}
Collections.sort(result2);
System.out.print(Arrays.toString(new List[]{result2}).replace("[","").replace("[","").replace("]]","").replace(" ",""));
System.out.print(",");
System.out.print(Arrays.toString(new List[]{result}).replace("[","").replace("[","").replace("]]","").replace(" ",""));
}
}
помощ моля за идеи :slight_smile:
Здрасти, ами пиши какъв ти е проблема
Здравей
Няма как да ти сработи решението, като си обединил две от условията в едно…
Успех
Диди
Здравейте,
защо използваме Arrays.toString?
Този метод взима всички елементи на масива и ги обединява във един стринг, след което го принтира.
Това с Collections.sort на колегата или е грешно или не го разбирам, но имам следния въпрос: Да кажем, че сме подредили логиката правилно и стигаме до принтирането. В случая доколкото разбирам с Arrays.toString обръщаме ArrayList-a в низ, за да можем да отстраним скобите. Има ли друга причина да го правим? Има ли начин, с който да принитираме ArrayList без да се виждат скоби и да име спейс между елементите? То ест да не е необходимо да минаваме през низ и да чистим след това ненужните символи?
Разбира се. Всичко може да се прави по няколко начина (и поне няколко от тях ще са правилни ). Подхода, който е изполназвал Димитър работи, макар и да не много елегантен. Един от другите варианти е StringBuilder. Препоръчвам Ви да го разгледате, тъй като е много по-лесен за използване при операции със стрингове и също така много по-щадящ откъм памет.
Може да прочетете повече тук.
Успех