1. Java / Говнокод #20345

    +3

    1. 1
    2. 2
    3. 3
    assertArrayEquals("f g h i j k l m n o".split("\\s"), actualValuesArray);
    
    assertArrayEquals(Lists.reverse(Arrays.asList("l m n o p q r s t u".split("\\s"))).toArray(), actualValuesArray);

    Когда лень руками создавать массив строк и сложно перечислить буквы в обратном порядке

    Запостил: nikit13, 07 Июля 2016

    Комментарии (20) RSS

    • Убирайте пробелы и юзайте себе .split("(?!^)"), будет вам счастье.
      Ответить
      • Второй ответ в гугле на "java split string to letters". Правда, малочитаемо.
        Ответить
      • Кстати, а кто вообще сказал, что там именно массив символов нужен? Может быть просто так получилось, что в этом тесте actualValuesArray - массив односимвольных строк, но в реальности они могут быть длиннее?
        Ответить
      • list(str)

        Жава соснула!
        Ответить
    • re.findall(".", str)
      Ответить
    • "Stack Me 123 Heppa1 oeu".toCharArray()

      Первый ответ в гугле на "java split string to letters"ю
      Ответить
      • String#toCharArray() возвращает char[], а нужен String[]
        Ответить
        • Боюсь спросить - нафига?
          Ответить
          • Для того, чтобы не напрягать javac поиском assertArrayEquals, не существующего с такой сигнатурой.
            Ответить
            • Каким образом нарисовывается массив односимвольных строк?
              Ответить
              • Из приведенного в первой строке выражения следует, что actualValuesArray является String[], так как "f g h i j k l m n o".split("\\s") возвращает String[], под такую сигнатуру подходит метод org.junit.Assert#assertArrayEquals(Objec t[], Object[]). Если же на место первого аргумента поставить char[] (результат вызова "fghijklmno".toCharArray()), то метода способного принять аргументы (char[], String[]) нет в классе org.junit.Assert.
                Ответить
                • Ты не понял, что за апи возвращает этот массив ?
                  Ответить
                  • public String[] split(String regex)

                    Или ты про то, откуда вернули actualValuesArray?
                    Ответить
                    • Да. Что за долбоапи возвращает массив односимвольных строк? Уже третий раз спрашиваю.
                      Ответить
                      • Да с чего ты взял, что оно всегда возвращает односимвольные строки?
                        Ответить
                        • Не знаю что оно возвращает всегда - кода-то нет, но пример дурацкий.
                          Ответить
                  • Тот массив, очевидно, возвращает API, проверяемое тестом, фрагмент которого приведен. И выше есть доказательство того, что это String[]. И конечно же в массиве могут оказаться произвольные строки. Видимо автор кода не хотел писать new String[] {"f", "g", "h", "i", "j", "k", "l", "m", "n", "o"}, ибо дофига кавычек и запятых.
                    Ответить

    Добавить комментарий