task30.task3002 не проходит тестирование РЕШЕНА

Добрый день. Прошу помощи в решении задачи, вроде ничего сложного, но тестирование не проходит. Подскажите в чём может быть проблема.

Осваиваем методы класса Integer
Используя метод Integer.parseInt(String, int) реализуй логику метода convertToDecimalSystem, который должен переводить переданную строку в десятичное число и возвращать его в виде строки.

Требования:
1. Метод convertToDecimalSystem (String), возвращающий String, должен существовать.
2. Метод convertToDecimalSystem (String), возвращающий String, должен иметь модификаторы доступа: public, static.
3. Метод convertToDecimalSystem (String), возвращающий String, должен переводить переданную строку в десятичное число и возвращать его в виде строки.
4. Метод convertToDecimalSystem (String) должен вызывать метод Integer.parseInt(String, int).
5. Метод main (String[]), возвращающий void, должен иметь модификаторы доступа: public, static.

Четвёртый пункт ни в какую не проходит, хотя метод вызывается.

package com.javarush.task.task30.task3002;

/* 
Осваиваем методы класса Integer
*/
public class Solution {

    public static void main(String[] args) {
        System.out.println(convertToDecimalSystem("0x16")); //22
        System.out.println(convertToDecimalSystem("012"));  //10
        System.out.println(convertToDecimalSystem("0b10")); //2
        System.out.println(convertToDecimalSystem("62"));   //62
    }

    public static String convertToDecimalSystem(String s) {
        //напишите тут ваш код
        String result ="";
        String tmp;
      if (s.startsWith("0x")){
          tmp = s.substring(2,s.length());
          result = String.valueOf(Integer.parseInt(tmp,16));
      }
      else if (s.startsWith("0b")){
          tmp = s.substring(2,s.length());
          result = String.valueOf(Integer.parseInt(tmp,2));
      }
      else if (s.startsWith("0")){
          tmp = s.substring(1,s.length());
          result = String.valueOf(Integer.parseInt(tmp,8));
      }
      else
          result = s;
        return result;
    }
}

task22.task2209

Условие:
В методе main считай с консоли имя файла, который содержит слова, разделенные пробелом.
В методе getLine используя StringBuilder расставь все слова в таком порядке, чтобы последняя буква данного слова совпадала с первой буквой следующего не учитывая регистр.
Каждое слово должно участвовать 1 раз.
Метод getLine должен возвращать любой вариант.
Слова разделять пробелом.
Вывести полученную строку на экран.

Пример тела входного файла:
Киев Нью-Йорк Амстердам Вена Мельбурн

Результат:
Амстердам Мельбурн Нью-Йорк Киев Вена

Требования:
1. Метод main должен считывать имя файла с клавиатуры.
2. В методе getLine должен быть использован StringBuilder
3. Метод getLine должен возвращать пустую строку(пустой StringBuilder) в случае если ему не были переданы параметры(слова).
4. Все слова переданные в метод getLine должны быть включены в результирующую строку, если это возможно.
5. Вывод на экран должен соответствовать условию задачи.

/////////

Я вот написал код, позволяющий найти все возможные варианты расстановки слов. Где-то получается длиннее, где-то короче и.т. д.
На картинке можно посмотреть комбинации.
Взял эти города — Пекин Гонконг Токио Москва Париж Лондон Киев Нью-Йорк Амстердам Вена Мельбурн Телявив Осака Оренбург Таганрог Гагарин.

Действительно ли нужно добавлять оставшиеся слова не попавшие никуда в конец? Просто об этом в условии ни хреналеона нету! И это бредово.

Метод getLine должен возвращать любой вариант. Это как понимать? Я должен возвращать какой-то рандомный варинат строки удовлетворяющий результату?

Сейчас валидатор не принимает:

(- тут я возвращаю самый длинный результат)
Все слова переданные в метод getLine должны быть включены в результирующую строку, если это возможно.

Вывод на экран должен соответствовать условию задачи. (казалось бы какому условию, просто через пробел да с большой буквы. Как он может не соответствовать?....)

package com.javarush.task.task22.task2209;

import java.io.*;
import java.util.ArrayList;

/*
Составить цепочку слов
*/
public class Solution {
    public static void main(String[] args) throws IOException {
        //...

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String fileName = reader.readLine();

        FileReader fileReader = new FileReader(fileName);


        StringBuilder file = new StringBuilder();
        while (fileReader.ready()){
            file.append((char) fileReader.read());
        }


        String[] strings = file.toString().split(" ");

        for (int x = 0; x< strings.length; x++){
           strings[x] = strings[x].toLowerCase();
        }

        StringBuilder result = getLine(strings);
        System.out.println(result.toString());
    }

    public static StringBuilder getLine(String... words) {

        if(words!=null && words.length!=0) {   // проверка на условие валидатора

            ArrayList<StringBuilder> megaList = new ArrayList<>(); // тут хранию все возможные комбинации

            ArrayList<String> originalList = new ArrayList<>();  // оригинальный лист стрингов

            for (String word : words) {
                originalList.add(word.toLowerCase()); // делаю всё с маленькой буквы
            }

            int k = originalList.size();   

            while (k > 0) {   //  повторяем цик столько раз, сколько у нас элементов в оригинальном массиве
                StringBuilder stringBuilder = new StringBuilder();
                ArrayList<String> copyOfList = new ArrayList<>(originalList);  // копия оригинального листа

                ArrayList<String> list = new ArrayList<>();  // лист где я храню подобранные слова

                list.add(copyOfList.get(k-1));  // начинаю с конца (не важно) сразу добавляю один (последний) в лист
                copyOfList.remove(k-1);  // и удаляю его из копии листа оригинала

                int n = copyOfList.size();
                while (n > 0) {  //  повторяем цик столько раз, сколько у нас элементов в оригинальном массиве

                    //тут стравниваем буквы, если есть совпадение, то удалячем из копии листа объект под индексом index
                    int index = -1;
                    for (int x = 0; x < copyOfList.size(); x++) {

                        String str1 = copyOfList.get(x);
                        String str2 = list.get(list.size() - 1);

                        char ch1 = str1.charAt(0);
                        char ch2 = str2.charAt(str2.length() - 1);

                        if (ch1 == ch2) {
                            list.add(str1);
                            index = x;
                            break;
                        }
                    }

                    if (index != -1) {
                        copyOfList.remove(index);
                    }

                    n--;
                }

                
                // возвращаем заглавные буквы и морфмируем stringBuilder
                for (String into : list) {
                    String str = into;
                    str = Character.toUpperCase(str.charAt(0)) + str.substring(1);

                    stringBuilder.append(str).append(" ");
                }
                // удаляем пробел 
                stringBuilder.replace(stringBuilder.length()-1,stringBuilder.length(),"");
                megaList.add(stringBuilder);

                k--;
            }

            // тут я просто нахожу самую длинную комбинацию
            int maxIndex=0;
            int lenght=megaList.get(0).length();

            for (int e = 1; e < megaList.size(); e++ ){
                if(megaList.get(e).length()>=lenght) {
                    lenght = megaList.get(e).length();
                    maxIndex = e;
                }
            }

          //  System.out.println(megaList);
            return megaList.get(maxIndex);
        }

    return new StringBuilder();
    }
}

Ошибка incompatible types в task14.task1405;

Всем привет. помогите разобраться, понимаю что решение простое… но что то не доходит какое именно!
ошибка
"
incompatible types: com.javarush.task.task14.task1405.Solution.Food cannot be converted to com.javarush.task.task14.task1405.Solution.Selectable:
Solution.java, line: 10, column: 33
"
Вывод компилятора:
com/javarush/task/task14/task1405/Solution.java:10: error: incompatible types: com.javarush.task.task14.task1405.Solution.Food cannot be converted to com.javarush.task.task14.task1405.Solution.Selectable
Selectable selectable = new Food();

/*
Food
1. Реализовать интерфейс Selectable в классе Food.
2. Метод onSelect() должен выводить на экран фразу «food was selected«.
3. Подумай, какие методы можно вызвать для переменной food и какие для selectable.
4. В методе foodMethods вызови методы onSelect, eat, если это возможно.
5. В методе selectableMethods вызови методы onSelect, eat, если это возможно.
6. Явное приведение типов не использовать.
*/

public class Solution {
    public static void main(String[] args) {
        Food food = new Food();
        Selectable selectable = new Food();
        Food newFood = (Food) selectable;

        foodMethods(food);
        selectableMethods(selectable);
    }

    public static void foodMethods(Food food) {
       food.eat();
        food.onSelect();

    }

    public static void selectableMethods(Selectable selectable) {
        selectable.onSelect();

    }

    interface Selectable {
        void onSelect();
    }

    static class Food {
        public void onSelect() {
            System.out.println("food was selected");
        }
        public void eat() {
            System.out.println("food was eaten");
        }
    }
}

Список недобросовестных работодателей

Интересно, а есть среди работодателей недобросовестные!? Или в этой сфере такого не бывает? Слышал, что дают тестовые задания, принимают эти решения, используют их в своих проектах, а тем, кто написал решения этих тестовых заданий — просто отказывают.
Ну это кроме всяких задержек зарплаты и прочего, что есть везде.
Интересует существуют ли такой список где-то здесь или ещё на каких сайтов айтишников.

Пока, собственно интересует Санкт-Петербург. Просто уже месяца два или три периодически мониторю вакансии в этом городе, и уже несколько месяцев висят вакансии одних и тех же фирм. Вот, странно, чего это они там висят!? То ли вакансии липовые, то ли там так хреново, что никто не остаётся надолго, то ли у самой фирмы слишком запредельные требования… странно…
  • ,

Update JavaRush

Друзья! Пришло время очередного обновления JavaRush =)



В рамках текущего большого апдейта мы исправили часть ошибок, о которых вы нам писали, и реализовали ряд предложенных вами функций:

  1. Ссылки на лекции, уровни и квесты стали кликабельными.

  2. Когда вы приобретаете подписку или происходит автопродление вашей текущей подписки, на ваш email будет отправлено уведомление.

  3. Сообщения помечаются как прочитанные после кликов по ним.

  4. Плагин JavaRush полностью поддерживает новую версию IntelliJ IDEA 2017.

  5. Плагин был переключен с протокола http на защищенный https.

  6. Добавлен поиск задачи по её идентификатору.

  7. Улучшены и проверены условия или механизм проверки таких задач: task3513(8), task3310(10), task3310(15), task1620, task2401, task0108, task3209, task2909(13), task2312, task1519, task2025, task3209(2), task1822, task3504, task0517, task3003, task2508, task3710, task0718, task3105, task1410, task0711, task2712, task2712(01), task1903, task0526, task0134, task3101, task2025, task2909, task0306, task2712(16).

  8. Усовершенствована функция Continued Education (эта функция позволяет сохранять решения пользователей с подпиской Premium Pro на сервере JavaRush). Теперь Continued Education поддерживает сохранение бинарных файлов из плагина.

  9. Исправлено начальное количество черной материи для новых пользователей.

  10. Реализована автоматическая прокрутка окна, в котором открывается задание на набор текста.

  11. Также мы подняли минимальный уровень участия в онлайн стажировке с 30 до 35, поскольку на старших уровнях JavaRush есть материал, который облегчит вам прохождение стажировки и значительно повысит пользу от неё.

  12. А также:
    • Улучшена главная страница JavaRush.
    • Улучшен механизм изменения аватарки пользователя.
    • Исправлено отображение LinkedIn в списке привязанных соцсетей.
    • Возвращен список приглашенных пользователей.
    • Исправлено отображение комментариев с очень длинными словами.
    • Убрано слово «Требования» в условиях заданий по набору текстов и просмотру видеороликов.
    • Исправлены тексты сообщений об ошибках в плагине и WebIDE.

Что такое мьютекс и что такое монитор?

Задался вопросом понять, что есть что. Так как в разных источниках по-разному используют эти термины. И часто даже бывает, что в одной статье что-либо, например, кусок кода, называют монитором, в другой — это называют мьютексом (и бывает наоборот — объект, связанный с данным, и отвечающий на синхронизацию нитей, называют то мьютексом, то монитором). Вот и хочу разобраться, что есть что. (могу, конечно, привести множество цитат из этих источников, где употребляются эти термины, но думаю, это будет избыточно.)

Оценка попыток решения задач и конечный счет

Ребят, мне кажется что java rush ранее выдавала куда более красивую и правдоподобную статистику по тому как вы решили ту или иную задачу. Я имею ввиду среднее количество попыток на сколько успешнее вы решили задачу по сравнению с остальными. Что вы думаете на этот счет?

level19.lesson10.home09 READER-обертка, помогите!

Моя программа в двух вариантах, и ни один из вариантов не проходит проверку на сервере! подскажите, в чем может быть дело?
<em>/* Контекстная реклама
В методе main подмените объект System.out написанной вами реадер-оберткой
Ваша реадер-обертка должна выводить на консоль контекстную рекламу после каждого второго println-а
Вызовите готовый метод printSomething(), воспользуйтесь testString
Верните переменной System.out первоначальный поток

Рекламный текст: "JavaRush - курсы Java онлайн"

Пример вывода:
first
second
JavaRush - курсы Java онлайн
third
fourth
JavaRush - курсы Java онлайн
fifth
*/</em>

— Вариант 1:
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;

public class Solution {

    public static void main(String[] args) {
        PrintStream originalConsolePrintStream = System.out;
        ByteArrayOutputStream byteArray = new ByteArrayOutputStream();
        PrintStream customOutputStream = new PrintStream(byteArray);
        System.setOut(customOutputStream);
        new TestString().printSomething();

        System.setOut(originalConsolePrintStream);

        String lines[] = byteArray.toString().split(System.lineSeparator());
        for (int i = 0; i < lines.length; i++) {
            System.out.println(lines[i]);
            if (i % 2 != 0) {
                System.out.println("JavaRush - курсы Java онлайн");
            }
        }

    }

    public static class TestString {
        public void printSomething() {
            System.out.println("first");
            System.out.println("second");
            System.out.println("third");
            System.out.println("fourth");
            System.out.println("fifth");
        }
    }
}

— Вариант 2
import java.io.*;

public class Solution {

    public static void main(String[] args) {
        PrintStream orig = System.out;
        System.setOut(new outputStreamDecorator(orig));
        TestString t = new TestString();
        t.printSomething();
        System.setOut(orig);

    }

    public static class TestString {
        public void printSomething() {
            System.out.println("first");
            System.out.println("second");
            System.out.println("third");
            System.out.println("fourth");
            System.out.println("fifth");
        }
    }

    static class outputStreamDecorator extends PrintStream {
        String ad = "JavaRush - курсы Java онлайн";
        static int counter = 0;
        public outputStreamDecorator(OutputStream out) {
            super(out);
        }

        public void println(String s) {
            super.println(s);
            counter++;
            if (counter % 2 == 0 ){
                super.println(ad);
            }
        }
    }
}

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

В старом плагине, насколько я помню, при открытии уже решённой задачи, решение не пропадало. Сейчас сразу же предупреждение при открытии, что файлы будут сброшены. Можно как-то вернуть на старый вариант? Сейчас получается, что нельзя посмотреть своё же решение. Закрыл задачу, потом открыл и решение сброшено.

  • ,

task32.task3210 или очередная бяка валидатора.

Уже невозможно просто бороться с валидатором, но может я всё-таки где-то не прав?
Условие:
Используем RandomAccessFile

В метод main приходят три параметра:
1) fileName — путь к файлу;
2) number — число, позиция в файле;
3) text — текст.

Считать текст с файла начиная с позиции number, длинной такой же как и длинна переданного текста в третьем параметре.

Если считанный текст такой же как и text, то записать в конец файла строку ‘true‘, иначе записать ‘false‘.
Используй RandomAccessFile и его методы seek(long pos), read(byte b[], int off, int len), write(byte b[]).
Используй convertByteToString(byte readBytes[]) для конвертации считанной строчки в текст
.

Вот мой код:
public class Solution {
public static void main(String... args) throws IOException {
    RandomAccessFile file=new RandomAccessFile(args[0],"rw");
    int n=Integer.parseInt(args[1]);
    file.seek(n);
    String text=args[2];
    byte[] fileText=new byte[(int)file.length()];
    file.read(fileText,0,text.length());
    file.seek(file.length());
    String shoudBeWritten="";
    if(convertByteToString(fileText).equals(text))shoudBeWritten="true";
    else if(!convertByteToString(fileText).equals(text))shoudBeWritten="false";
    file.writeChars(shoudBeWritten);
    file.close();
}
private static String convertByteToString(byte readBytes[]){
    return String.valueOf(readBytes);
}
}

task21.task2104

Задача решена!!! 
Хочу уточнить пару возникших вопросов.
1) Почему при создании нового объекта Solution вызывается метод hashCode()?
   Хотя фактически нет указаний на его вызов.
2) Мы вызываем метод contains(), а исполняется метод equals() ?



public class Solution {
    private final String first, last;

    public Solution(String first, String last) {
        this.first = first;
        this.last = last;
    }

    @Override
    public boolean equals(Object o) {
          *************
            }

    @Override
    public int hashCode() {
        ***************
    }

    public static void main(String[] args) {
        Set<Solution> s = new HashSet<>();
        s.add(new Solution("Donaldadd", "Duckfff"));
        System.out.println(s.contains(new Solution("Donald", "Duck")));
    }
}