fork download
  1. package com.javarush.task.task09.task0930;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.InputStreamReader;
  5. import java.util.ArrayList;
  6. import java.util.Arrays;
  7. import java.util.Collections;
  8.  
  9. /*
  10. Задача по алгоритмам Ӏ Java Syntax: 9 уровень, 11 лекция
  11. */
  12.  
  13. public class Solution {
  14. public static void main(String[] args) throws Exception {
  15. ArrayList<String> list = new ArrayList<>();
  16. String line = reader.readLine();
  17. while (!line.isEmpty()) {
  18. list.add(line);
  19. line = reader.readLine();
  20. }
  21.  
  22. String[] array = list.toArray(new String[0]);
  23. sort(array);
  24.  
  25. for (String x : array) {
  26. System.out.println(x);
  27. }
  28. }
  29.  
  30. public static void sort(String[] array) {
  31. isGreaterThan("", ""); //заглушка
  32. int l = array.length;
  33. ArrayList<Integer> numbers = new ArrayList<>();
  34. ArrayList<String> strings = new ArrayList<>();
  35. for (String str : array) {
  36. if (isNumber(str)) {
  37. numbers.add(Integer.parseInt(str));
  38. } else {
  39. strings.add(str);
  40. }
  41. }
  42. Collections.sort(numbers);
  43. Collections.reverse(numbers);
  44. Collections.sort(strings);
  45. int a = 0, b = 0;
  46. for (int i = 0; i < l; i++) {
  47. String str = array[i];
  48. if (isNumber(str)) {
  49. array[i] = "" + numbers.get(a);
  50. a++;
  51. } else {
  52. array[i] = strings.get(b);
  53. b++;
  54. }
  55. }
  56. }
  57.  
  58.  
  59. // Метод для сравнения строк: 'а' больше чем 'b'
  60. public static boolean isGreaterThan(String a, String b) {
  61. return a.compareTo(b) > 0;
  62. }
  63.  
  64.  
  65. // Переданная строка - это число?
  66. public static boolean isNumber(String text) {
  67. if (text.length() == 0) {
  68. return false;
  69. }
  70.  
  71. char[] chars = text.toCharArray();
  72. for (int i = 0; i < chars.length; i++) {
  73. char character = chars[i];
  74.  
  75. // есть '-' внутри строки
  76. if (i != 0 && character == '-') {
  77. return false;
  78. }
  79.  
  80. // не цифра и не начинается с '-'
  81. if (!Character.isDigit(character) && character != '-') {
  82. return false;
  83. }
  84.  
  85. // одиночный '-'
  86. if (chars.length == 1 && character == '-') {
  87. return false;
  88. }
  89. }
  90.  
  91. return true;
  92. }
  93. }
  94.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:13: error: class Solution is public, should be declared in a file named Solution.java
public class Solution {
       ^
1 error
stdout
Standard output is empty