• ,

level07.lesson09.task05

Задание:
/* Удвой слова
1. Введи с клавиатуры 10 слов в список строк.
2. Метод doubleValues должен удваивать слова по принципу a,b,c -> a,a,b,b,c,c.
3. Используя цикл for выведи результат на экран, каждое значение с новой строки.
*/

Мой код:

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        Scanner sc = new Scanner(System.in);
        ArrayList<String> list = new ArrayList<>();
        for (int i = 0; i < 10; i++)
        {
            list.add(sc.nextLine());
        }//Считать строки с консоли и объявить ArrayList list тут

        ArrayList<String> result = doubleValues(list);

        for (String s : result)
        {
            System.out.println(s);
        }
        //Вывести на экран result
    }

    public static ArrayList<String> doubleValues(ArrayList<String> list)
    {
        ListIterator<String> iter = list.listIterator();
        while(iter.hasNext())
        {
            String s = iter.next();
            iter.add(s);
        }
        return list;
    }
}

Вопрос:
Почему не проходит тестирование?

com.javarush.test.level08.lesson08.task05

public class Solution
{
    public static HashMap<String, String> createMap()
    {
        HashMap<String,String> map = new HashMap<String, String>();
        map.put("Сергей","Ефремов");
        map.put("ольга","Терентьева");
        map.put("Татьяна","Ефремов");
        map.put("Оксана","Митрофанова");
        map.put("Вячеслав","Оливанов");
        map.put("Виталий","Оливанов");
        map.put("Андрей","Алексеев");
        map.put("Алексей","Иванов");
        map.put("Леха","Николаев");
        map.put("Владислав","Оливанов");
        return map;
    }

    public static void removeTheFirstNameDuplicates(HashMap<String, String> map)
    {
        HashMap<String,String> copy = new HashMap<String, String>(map);
        Iterator<Map.Entry<String,String>> itr = copy.entrySet().iterator();
        while(itr.hasNext()){
            Map.Entry<String,String> name = itr.next();

            if (copy.containsValue(name.getValue()))
                removeItemFromMapByValue(map,name.getValue());
        }
    }

    public static void removeItemFromMapByValue(HashMap<String, String> map, String value)
    {
        HashMap<String, String> copy = new HashMap<String, String>(map);
        for (Map.Entry<String, String> pair: copy.entrySet())
        {
            if (pair.getValue().equals(value))
                map.remove(pair.getKey());
        }
    }

    public static void main(String[] args)
    {
        HashMap<String, String> map = createMap();
        removeTheFirstNameDuplicates(map);
        for (Map.Entry<String, String> pair:map.entrySet()){
            String s = pair.getValue();
            System.out.println(s);
        }
    }
}


или я не вижу какой то банальной ошибки, или я просто не понял, как оно должно работать, но у меня выводит пустой map.

Помогите решить задачку )

Текст на украинском, но кто-то да и поймет )

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
Космічний Робот висадився на чужу планету. Спочатку Робот виконує
одну операцію — бере камінець и кладе його в контейнер для червоних камінців. Якщо все
правильно — продовжує набирати камінці, якщо ж взятий камінь виявився синім - Робот
виконує іншу операцію — перекладає камінець в контейнер для синіх камінців, або
відкидає далеко в сторону, якщо контейнер заповнений (він вже поклав 40 синіх камінців
туди раніше). Як тільки «червоний» контейнер заповнено — продовжуємо всі ті ж дії для
синіх камінців. Усього поряд з Роботом лежить А червоних та В синіх камінців.
Технічні умови. Програма Spacerobot читає з пристрою стандартного введення в одному
рядку два числа А, В (40 ≤ А, В ≤100). Програма виводить на пристрій стандартного
виведення максимальну кількість операцій, які вимушений буде виконати робот, аби
заповнити «синій» та «червоний» контейнери, кожен із яких розрахований на 40 камінців.
Приклад
Введення Виведення
40 40 120
100 40 239

*/


public  class Two
{
    public static void main(String[] args) throws IOException
    {
        BufferedReader rd = new BufferedReader(new InputStreamReader(System.in));
        int a = Integer.parseInt(rd.readLine()); // красні
        int b = Integer.parseInt(rd.readLine()); // сині
        int c = 0; // korobka
        int d = 0; // korobka
        int e = 0;
        int t = 0;
        int u = 0;
        int i = 0;
        int v;

        if (40 <= a && b <= 100) {
            while (true) {
                v = (int)(Math.random()*2);

                if (a != 0) {
                    if (v == 1 && c <= 40) {
                        c++;
                    }
                    else if (v == 1 && c > 40) {
                        e++;
                    }
                }
                else if (b != 0) {
                    if (v == 0 && d <= 40) {
                        d++;
                    }
                    else if (v == 0 && d > 40) {
                        t++;
                    }
                }
                else if (a == 0 && c != 40){
                    e--;
                    c++;
                }
                else if (b == 0 && d != 40){
                    t--;
                    d++;
                }
                else if (c == 40 && d == 40) break;
                i++;
                a--;
                b--;
            }
            System.out.println(i);
        }
    }


}

Проблема заключается в следующем:
Если ввести 2 числа которые подходят для входа в цикл — программа бесконечно просит ввести ей числа.
  • ,

level06.lesson11.bonus02

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/* Нужно добавить в программу новую функциональность
Задача: У каждой кошки есть имя и кошка-мама. Создать класс, который бы описывал данную ситуацию. Создать два объекта: кошку-дочь и кошку-маму. Вывести их на экран.
Новая задача: У каждой кошки есть имя, кошка-папа и кошка-мама. Изменить класс Cat так, чтобы он мог описать данную ситуацию.
Создать 6 объектов: дедушку(папин папа), бабушку(мамина мама), папу, маму, сына, дочь.
Вывести их всех на экран в порядке: дедушка, бабушка, папа, мама, сын, дочь.

Пример ввода:
дедушка Вася
бабушка Мурка
папа Котофей
мама Василиса
сын Мурчик
дочь Пушинка

Пример вывода:
Cat name is дедушка Вася, no mother, no father
Cat name is бабушка Мурка, no mother, no father
Cat name is папа Котофей, no mother, father is дедушка Вася
Cat name is мама Василиса, mother is бабушка Мурка, no father
Cat name is сын Мурчик, mother is мама Василиса, father is папа Котофей
Cat name is дочь Пушинка, mother is мама Василиса, father is папа Котофей
*/

public class Solution
{
public static void main(String[] args) throws IOException
{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String DEDNAME = reader.readLine();
Cat DED = new Cat(DEDNAME);

String BABUSHKANAME = reader.readLine();
Cat BABUSHKA = new Cat(BABUSHKANAME);

String PAPANAME=reader.readLine();
Cat PAPA = new Cat(PAPANAME,null,DED);

String MAMANAME = reader.readLine();
Cat MAMA = new Cat(MAMANAME,BABUSHKA,null);

String SbIN = reader.readLine();
Cat Sin = new Cat(SbIN,MAMA,PAPA);

String DO4 = reader.readLine();
Cat Doch = new Cat(DO4,MAMA,PAPA);

DED.toString();
BABUSHKA.toString();
PAPA.toString();
MAMA.toString();
Sin.toString();
Doch.toString();

}

public static class Cat
{
private String name;
private Cat mother;
private Cat father;

Cat(String name)
{
this.name = name;
}

Cat(String name, Cat mother, Cat father)
{
this.name = name;
this.mother = mother;
this.father = father;
}

public String toString()
{
System.out.print(«Cat name is » +name+",");
if (mother == null)
System.out.print(" no mother, ");
else System.out.print(" mother is "+mother.name +",");
if (father == null)
System.out.println(" no father");
else System.out.println(" father is "+father.name);
return null;
}
}
}

ввод:
дедушка Вася
бабушка Мурка
папа Котофей
мама Василиса
сын Мурчик
дочь Пушинка
Вывод:
Cat name is дедушка Вася, no mother, no father
Cat name is бабушка Мурка, no mother, no father
Cat name is папа Котофей, no mother, father is дедушка Вася
Cat name is мама Василиса, mother is бабушка Мурка, no father
Cat name is сын Мурчик, mother is мама Василиса, father is папа Котофей
Cat name is дочь Пушинка, mother is мама Василиса, father is папа Котофей

накодено плохо и криво, но вроде все как просит, почему не принимает?

level05.lesson12.home05;

/* Вводить с клавиатуры числа и считать их сумму
Вводить с клавиатуры числа и считать их сумму, пока пользователь не введёт слово «сумма». Вывести на экран полученную сумму.
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Solution
{
public static void main(String[] args) throws Exception
{
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int summ = 0;
for (; true; )
{
String text = bf.readLine();
if (text.equals(«сумма»))

System.out.println(summ);
else
{
int num = Integer.parseInt(text);
summ = summ + num;
}

}
}
}


в ИДЕА вроде проходит все мои проверки, но проверку сервера пройти не могу. Подскажите что упустил? Может break; куда то засунуть надо?
  • ,

level09.lesson11.home05 - не проходит проверку

/*
 * Написать программу, которая вводит с клавиатуры строку текста.
Программа должна вывести на экран две строки:
1. первая строка содержит только гласные буквы
2. вторая - только согласные буквы и знаки препинания из введённой строки.
Буквы соединять пробелом, каждая строка должна заканчиваться пробелом.

Пример ввода:
Мама мыла раму.
Пример вывода:
а а ы а а у
М м м л р м .
 */
package javaapplication58;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
/**
 *
 * @author СВС
 */
public class JavaApplication58 {

    /**
     * @param args the command line arguments
     * @throws java.lang.Exception
     */
      public static void main(String[] args) throws Exception
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String a = reader.readLine();
        
        char[] chars = a.toCharArray();
        
        ArrayList<Character> list1 = new ArrayList<Character>();
        ArrayList<Character> list2 = new ArrayList<Character>();
        
        for(int i = 0; i < a.length(); i++)
        {
            if(chars[i] == (' '))
            {
                continue;
            }
            
            else if (isVowel(chars[i]) == true)
          {
              list1.add(chars[i]);
          }
            else 
          {
            list2.add(chars[i]); 
          
          }
          }
        
        
        for (int i = 0; i < list1.size(); i++)
{
  
  System.out.print( list1.get(i) + "_" );
        
}
        System.out.println();
       for (int i = 0; i < list2.size(); i++)
{
 
  System.out.print( list2.get(i) + "_" );
        
       
          }
       System.out.println();
}
    
        
    

        


    public static char[] vowels = new char[]{'a', 's', 'd',};

    //метод проверяет, гласная ли буква
    public static boolean isVowel(char c)
    {
         c = Character.toLowerCase©;  //приводим символ в нижний регистр - от заглавных к строчным буквам

        for (char d : vowels)   //ищем среди массива гласных
        {
            if (c == d)
                return true;
        }
        return false;
    }
}
  • ,

Задача: У каждой кошки есть имя и кошка-мама. Создать класс, который бы описывал данную ситуацию

Подскажите что не так? читал все топики ни че не понял чё переставить где? выводит все нормуль

public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));


        String motherName = reader.readLine();
        Cat catMother = new Cat(motherName);

        String fazedName = reader.readLine();
        Cat catFazed = new Cat(fazedName);

        String gfName = reader.readLine();
        Cat catGf = new Cat(gfName, catMother, null );

        String gmName = reader.readLine();
        Cat catGm = new Cat(gmName,null, catFazed );

        String daughterName = reader.readLine();
        Cat catDaughter = new Cat(daughterName, catGm, catGf);

        String sonName = reader.readLine();
        Cat catSon = new Cat(sonName, catGm, catGf);

        System.out.println(catMother);
        System.out.println(catFazed);
        System.out.println(catGf);
        System.out.println(catGm);
        System.out.println(catDaughter);
        System.out.print(catSon);
    }

    public static class Cat
    {
        private String name;
        private Cat parentu;
        private Cat parent;


        Cat(String name)
        {
            this.name = name;
        }

        Cat(String name,  Cat parent, Cat parentu )
        {
            this.name = name;
            this.parent = parentu;
            this.parentu = parent;
        }

        @Override
        public String toString()
        {
            return "Cat name is " + name +
                    (parentu!=null ? ", father is " + parentu.name : ", no father") +
                    ((parent != null ? ", mother is " + parent.name : ", no mother"));


вывод:
Cat name is 1, no father, no mother
Cat name is 2, no father, no mother
Cat name is 3, father is 1, no mother
Cat name is 4, no father, mother is 2
Cat name is 5, father is 4, mother is 3
Cat name is 6, father is 4, mother is 3
Process finished with exit code 0
  • ,

com.javarush.test.level13.lesson11.home04;

Здравствуйте! Помогите, пожалуйста, с задачей. Долго мучался и не понимал, как перенести запись на новую строку. Решил просто так отправить на проверку, и сервер её принял. Но я до сих пор не понимаю, что нужно сделать, чтобы в файле все строки выводились с новой строки.

package com.javarush.test.level13.lesson11.home04;

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

/* Запись в файл
1. Прочесть с консоли имя файла.
2. Считывать строки с консоли, пока пользователь не введет строку "exit".
3. Вывести абсолютно все введенные строки в файл, каждую строчку с новой стороки.
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        OutputStream fos = new FileOutputStream(reader.readLine());
        ArrayList<String> list = new ArrayList<String>();
        while (true)
        {
            String s = reader.readLine() + "\n";
            list.add(s);
            if (s.equals("exit\n"))
            {
                for (int i = 0; i < list.size(); i++)
                {

                    fos.write(list.get(i).getBytes());
                }
                break;
            }
        }
        reader.close();
        fos.close();
    }
}
  • ,

package com.javarush.test.level05.lesson12.bonus03;

/* Задача по алгоритмам
Написать программу, которая:
1. вводит с консоли число N > 0
2. потом вводит N чисел с консоли
3. выводит на экран максимальное из введенных N чисел.
*/


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int maximum = 0;

        System.out.println("<<Введите число больше чем 0>>");
        int max = Integer.parseInt(reader.readLine());
        if ( max > 0)
        {
            System.out.println("<<Введите " + max + " чисел/числа/число)>>");
            int[] list = new int[max];
            for (int z = 0; z < max; z++)
        {
            String s = reader.readLine();
            list[z] = Integer.parseInt(s);
        }
            Arrays.sort(list);
            maximum=list[list.length-1];
        System.out.println(maximum);
        }
        //если число <0 закончить работу
    else System.exit(0);
    }
}


работает правильно, сервер не принимает, уже долго весит нерешенная, убирал if/else все равно не принимает.help

level27.lesson15.big01 Задание 2. Не проходит задача, ответов нигде не нашел

Товарисчи, помогите с проблемой, уже пару дней парюсь с этой задаче, но пока вообще не понятно, из-за чего может не принимать

Order

import com.javarush.test.level27.lesson15.big01.ConsoleHelper;
import com.javarush.test.level27.lesson15.big01.Tablet;

import java.io.IOException;
import java.util.List;

public class Order
{
    private Tablet tablet;
    private List<Dish> dishes;

    public Order(Tablet tablet) throws IOException
    {
        this.tablet = tablet;
        dishes = ConsoleHelper.getAllDishesForOrder();
    }

    @Override
    public String toString()
    {
        String result = "";
        if (!dishes.isEmpty())
        {
            result = "Your order: " + dishes.toString() + " of Tablet{number=" + tablet.number + "}";
        }
        return result;
    }
}



Dish

public enum Dish
{
    Fish,
    Steak,
    Soup,
    Juice,
    Water;

    public static String allDishesToString()
    {
        if (values().length == 0)
        {
            return "";
        }
        StringBuilder dishes = new StringBuilder();

        for (Dish dish : values())
        {
            dishes.append(dish.name());
            dishes.append(", ");
        }
        return dishes.toString().substring(0, dishes.length() - 2).trim();
    }
}


Tablet



import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Tablet
{
    public static java.util.logging.Logger logger = Logger.getLogger(Tablet.class.getName());
    public final int number;

    public Tablet(int number)
    {
        this.number = number;
    }

    public void createOrder()
    {
        Order order;
        try
        {
            order = new Order(this);
            ConsoleHelper.writeMessage(order.toString());
        }
        catch (IOException e)
        {
            logger.log(Level.SEVERE, "Console is unavailable.");
        }
    }
}


Restaurant



public class Restaurant
{
    public static void main(String[] args)
    {
        ConsoleHelper.writeMessage(Dish.allDishesToString());
        new Tablet(5).createOrder();
    }
}


ConsoleHelper


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class ConsoleHelper
{
    private final static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

    public static void writeMessage(String message)
    {
        System.out.println(message);
    }
    public static String readString() throws IOException
    {
        return reader.readLine();
    }
    public static List<Dish> getAllDishesForOrder() throws IOException, IllegalArgumentException
    {
        String value;
        ArrayList<Dish> dishes = new ArrayList<>();
        writeMessage("Choose dish or press 'exit'");
        while (!"exit".equalsIgnoreCase(value = reader.readLine()))
        {
            writeMessage("Choose dish or press 'exit'");
            dishes.add(Dish.valueOf(value));
        }
        return dishes;
    }
}

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

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