Смотритель: hubert
  • ,

level09.lesson11.home03

вроде все условия соблюдены и работает даже. но проверку не проходит. add пробовал как list.add(0,number) так и list.add(number); а то условие сохранить порядок ввода не совсем понятно какой именно порядок. но все равно не принимается.
public static void readData(ArrayListlist)
{

try
{
while (true)
{
Scanner scanner = new Scanner(System.in);
Integer number = scanner.nextInt();
list.add(0,number);
}
}
catch (InputMismatchException e)
{
//System.out.println(e.getStackTrace());

}
finally
{
for (Integer integer: list) {
System.out.println(integer);
}
}
}
  • ,

level09.lesson08.task01

Подскажте, как перехватить FileNotFoundException понимаю, это RuntimeException.
package com.javarush.test.level09.lesson08.task01;

import java.io.FileNotFoundException;
import java.net.URISyntaxException;
import java.util.HashMap;

/* Исключения
Есть метод, который выбрасывает два исключения унаследованные от Exception и два унаследованных от RuntimeException:
NullPointerException, ArithmeticException, FileNotFoundException, URISyntaxException.

Нужно перехватить NullPointerException и FileNotFoundException, но не перехватывать
ArithmeticException и URISyntaxException. Как это сделать?
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //Напишите тут ваш код
        try
        {

        method1();
        }


        catch  (NullPointerException e)
        {
              System.out.println("   ");
        }
        catch ( FileNotFoundException e)
        {
            String s =e.getMessage();
            System.out.println(s);
        }

        //Напишите тут ваш код

    }

    public static void method1() throws  ArithmeticException, URISyntaxException //, FileNotFoundException
    {
        int i = (int) (Math.random() * 4);
    //    if (i == 0)
  //         throw new NullPointerException();
        if (i == 1)
            throw new ArithmeticException();
     // if (i == 2)
       // throw new FileNotFoundException();
        if (i == 3)
            throw new URISyntaxException("", "");


    }
}
  • ,

level06.lesson08.task05

Доброго времени суток, подскажи пожалуйста.
Я наверное не совсем понял условие…
package com.javarush.test.level06.lesson08.task05;

/* Класс StringHelper
Cделать класс StringHelper, у которого будут 2 статических метода:
String multiply(String s, int count) – возвращает строку повторенную count раз.
String multiply(String s) – возвращает строку повторенную 5 раз.
Пример:
Амиго -> АмигоАмигоАмигоАмигоАмиго
*/

public class StringHelper
{
    public static String multiply(String s)
    {
        String result = s;
        //Напишите тут ваш код
        for (int i=0;i<5;i++)
            System.out.println(result);
        return result;
    }

    public static String multiply(String s, int count)
    {
        String result = s;
        //Напишите тут ваш код
        for (int i=0;i<count;i++)
            System.out.println(result);
        return result;
    }
  • ,

level15.lesson12.home05

Прошу Вашей помощи программа никак не хочет проходить тестирование,
надеюсь создатели задач в курсе были что модификатор доступа private не генерируется в IJ в общем надеюсь на помощь.

package com.javarush.test.level15.lesson12.home05;

/* Перегрузка конструкторов
1. В классе Solution создайте по 3 конструктора для каждого модификатора доступа.
2. В отдельном файле унаследуйте класс SubSolution от класса Solution.
3. Внутри класса SubSolution создайте конструкторы командой Alt+Insert -> Constructors.
4. Исправьте модификаторы доступа конструкторов в SubSolution так, чтобы они соответствовали конструкторам класса Solution.
*/

public class Solution {
public Solution(Object pub1){}
public Solution(String pub2){}
public Solution(Integer pub3){}

protected Solution(Character prot1){}
protected Solution(Double prot2){}
protected Solution(Exception prot3){}

private Solution(Number priv1){};
private Solution(Boolean priv2){};
private Solution(Float priv3){};
}

файл SubSolution
package com.javarush.test.level15.lesson12.home05;

public class SubSolution extends Solution
{
public SubSolution(Object pub1)
{
super(pub1);
}

public SubSolution(String pub2)
{
super(pub2);
}

public SubSolution(Integer pub3)
{
super(pub3);
}

protected SubSolution(Character prot1)
{
super(prot1);
}

protected SubSolution(Double prot2)
{
super(prot2);
}

protected SubSolution(Exception prot3)
{
super(prot3);
}
}
  • ,

Помогите понять как работает

Собственно написал код, проверку проходит, все ок. Теперь помогите понять как он работает :)

Вопросов у меня несколько (сам код ниже):
1. Почему нельзя удалять записи карты в for each, а нужно пользоваться неудобным итератором?
2. Утверждение в п.1 только для карты справедливо?
3. Почему собственно записи удаляются строкой
iterator.remove();
а не
map.remove(data.getKey())


Код:
package com.javarush.test.level08.lesson08.task04;

import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/* Удалить всех людей родившихся летом
Создать словарь (Map<String, Date>), и занести в него десять записей по принципу: «фамилия» - «дата рождения».
Удалить из словаря всех людей, родившихся летом.
*/

public class Solution
{
    public static HashMap<String, Date> createMap()
    {
        HashMap<String, Date> map = new HashMap<String, Date>();
        map.put("Сталлоне", new Date("JUNE 1 1980"));
        map.put("fadfaе", new Date("JULY 1 1980"));
        map.put("fadgadаллоне", new Date("JULY 1 1980"));
        map.put("Стdfadе", new Date("JUNE 1 1980"));
        map.put("Стаdsfdafллоне", new Date("JUNE 1 1980"));
        map.put("Сталsdfsdлоне", new Date("JUNE 1 1980"));
        map.put("Сталsfdasafлоне", new Date("JUNE 1 1980"));
        map.put("Сталлsagadfgоне", new Date("JUNE 1 1980"));
        map.put("Сталлsdfsdfsоне", new Date("JUNE 1 1980"));
        map.put("Сталлstttdfsdfsоне", new Date("JUNE 1 1980"));

        //Напишите тут ваш код
      return map;
    }

    public static void removeAllSummerPeople(HashMap<String, Date> map)
    {
        //Напишите тут ваш код
        Map.Entry<String,Date> data;
        Iterator<Map.Entry<String,Date>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            data = iterator.next();

            if ((data.getValue().getMonth()>4) && (data.getValue().getMonth()<8))
            iterator.remove();
        }



    }



}
  • ,

level08.lesson11.home09

возвращает результат согласно условию, но не засчитывается. может кто сталкивался?
public class Solution
{
public static void main(String[] args) throws ParseException
{
Date da = new Date();

SimpleDateFormat format = new SimpleDateFormat(«MMM dd yyyy», Locale.US);
String dateTime = format.format(da).toUpperCase();
isDateOdd(dateTime);
}

public static boolean isDateOdd(String date) throws ParseException
{
Date yearStartTime = new Date();
yearStartTime.setHours(0);
yearStartTime.setMinutes(0);
yearStartTime.setSeconds(0);
yearStartTime.setDate(1);
yearStartTime.setMonth(0);

SimpleDateFormat format = new SimpleDateFormat(«MMM dd yyyy»,Locale.US);
Date dq = format.parse(date);
long maTimeDistance = dq.getTime() — yearStartTime.getTime();

long msDay = 24 * 60 * 60 * 1000;

int dayCount = (int) (maTimeDistance / msDay);

if (dayCount % 2 == 0)
{
return false;
}
return true;
}
}

level09.lesson11.bonus02

Троха незрозумів умову тому пробував, ще варіант считати ім я файла «джерла», зчитати знову якшо невірне і тоді вже считувати ім я файла «призначення». В обох випадках не пройшло тестування.

import java.io.*;

/* Нужно добавить в программу новую функциональность
Задача: Программа вводит два имени файла. И копирует первый файл на место заданное вторым именем.
Программа вводит два имени файла. И копирует первый файл на место заданное вторым именем. Если файла (который нужно копировать) с указанным именем не существует, программа должна вывести надпись «Файл не существует.» и еще раз прочитать имя файла с консоли.
*/
.....
  • ,

level15.lesson02.task03

package com.javarush.test.level15.lesson02.task03;
/*
1 Для вывода использовать можно только переменные из класс Constants
2 В классе Ferrari реализуйте метод printlnDesire, чтобы он выводил на экран «Я хочу ездить на Феррари»
3 В классе Lanos реализуйте метод printlnDesire, чтобы он выводил на экран «Я хочу ездить на Ланосе»
4 Создайте public static класс LuxuriousCar(РоскошнаяМашина)
5 Создайте public static класс CheapCar(ДешеваяМашина)
6 Унаследуйте Ferrari и Lanos от CheapCar и LuxuriousCar, подумайте, какой класс для кого
7 В классе LuxuriousCar реализуйте метод printlnDesire, чтобы он выводил на экран «Я хочу ездить на роскошной машине»
8 В классе CheapCar реализуйте метод printlnDesire, чтобы он выводил на экран «Я хочу ездить на дешевой машине»
9 В класах LuxuriousCar и CheapCar для метода printlnDesire расставьте различными способами модификаторы доступа так,
чтобы в классах Ferrari и Lanos выполнялось расширение видимости
*/
public class Solution {
public static void main(String[] args) {
new Solution.LuxuriousCar().printlnDesire();
new Solution.CheapCar().printlnDesire();
new Solution.Ferrari().printlnDesire();
new Solution.Lanos().printlnDesire();
}
public static class Ferrari extends LuxuriousCar
{
public void printlnDesire() {
System.out.println(Constants.WANT_STRING + Constants.FERRARY_NAME);
}
}
public static class Lanos extends CheapCar
{
public void printlnDesire() {
System.out.println(Constants.WANT_STRING + Constants.LANOS_NAME);
}
}
public static class LuxuriousCar
{
protected void printlnDesire() {
System.out.println(Constants.WANT_STRING + Constants.LUXURIOUS_CAR);
}
}
public static class CheapCar
{
private void printlnDesire() {
System.out.println(Constants.WANT_STRING + Constants.CHEAP_CAR);
}
}
public static class Constants {
public static String WANT_STRING = «Я хочу ездить на »;
public static String LUXURIOUS_CAR = «роскошной машине»;
public static String CHEAP_CAR = «дешевой машине»;
public static String FERRARY_NAME = «Феррари»;
public static String LANOS_NAME = «Ланосе»;
}
}

Работает, но проверку не проходит
  • ,

level16.lesson13.home07

Не проходит тестирование. Подскажите что не так.
import java.util.ArrayList;
import java.util.List;

/* Поиграем?
Три человека играют в игру. Каждый игрок(Gamer) характеризуется двумя параметрами: фамилией(name) и количеством действий в секунду (rating).
Нужно вывести в консоль ход игры и определить победителя и проигравших.
Итак...
1. Разберись, что делает программа.
1.1. List<String> steps хранит последовательность действий, которое каждый игрок выполняет от 0 до последнего.
1.2. isWinnerFound показывает, найден победитель или нет.
1.3. метод sleep выбрасывает InterruptedException и принимает параметр типа long.
1.4. Игорки играют независимо друг от друга.

2. Реализуйте логику метода run так, чтобы для каждого игрока:
2.1. за 1 секунду через равные интервалы времени выводилось в консоль rating описанных в steps действий.
2.2. Любой текст должен начинаться с фамилии игрока (метод getName()), потом следовать двоеточие, а затем сам текст. Пример: [Ivanov:Начало игры].
2.3. Когда игрок выполнит все действия из steps, то он считается победителем. Выведите [getName() + ":победитель!"].
2.4. Когда найден победитель, то игра останавливается, и остальные игроки считаются побежденными. Выведите для них [getName() + ":проиграл"].
*/

  • ,

level08lesson11task05

Программа работает правильно. Но не проходит =(
package com.javarush.test.level08.lesson11.home05;

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

/* Мама Мыла Раму. Теперь с большой буквы
Написать программу, которая вводит с клавиатуры строку текста.
Программа заменяет в тексте первые буквы всех слов на заглавные.
Пример ввода:
мама мыла раму.
Пример вывода:
Мама Мыла Раму.
*/

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

a[0] = Character.toUpperCase(a[0]);

Boolean b = false;

for (int i = 1; i < a.length; i++)
{
if (a[i] == ' ')
{
b = true;
}
else if (a[i] != ' ' && b)
{
a[i] = Character.toUpperCase(a[i]);
b = false;
}
}

System.out.println(a);
}
}
  • ,

level08.lesson11.home01

Set из котов
1. Внутри класса Solution создать public static класс кот – Cat.
2. Реализовать метод createCats, он должен создавать множество (Set) котов и добавлять в него 3 кота.
3. В методе main удалите одного кота из Set cats.
4. Реализовать метод printCats, он должен вывести на экран всех котов, которые остались во множестве. Каждый кот с новой строки.
То ли я что-то не понимаю, то ли жестко заклинило… Но не могу понять за что зацепиться. Накодил только что-то подобное:

package com.javarush.test.level08.lesson11.home01;

import java.util.HashSet;
import java.util.Set;

public class Solution
{
    public static void main(String[] args)
    {
        Set<Cat> cats = createCats();

        //Написать тут ваш код. step 3 - пункт 3

        for (Cat m : cats)
        {
            if (m.equals(cat2)) cats.remove(m); //тут не правильно... Но не имею никаких идей как правильно указать через psvm то, что я хочу удалить определенный объект который был создан и записан в другом методе.
        }

        printCats(cats);
    }

    public static Set<Cat> createCats()
    {
        //Написать тут ваш код. step 2 - пункт 2

        Set<Cat> cats = new HashSet<Cat>();  //создал множество
        Cat cat = new Cat();  //создал объекты-котов
        Cat cat1 = new Cat();
        Cat cat2 = new Cat();

        cats.add(cat); // добавил объекты в множество
        cats.add(cat1);
        cats.add(cat2);
        return cats;
    }

    public static void printCats(Set<Cat> cats)
    {
        // step 4 - пункт 4

        for (Cat p : cats)
        {
            System.out.println(p);
        }
    }

    // step 1 - пункт 1

    public static class Cat  // ничего не добавлял тут внутри, поскольку сами свойства класса не упоминаются в условии задачи, только "кот" как сам объект
    {
        
    }
}
  • ,

level08.lesson08.task04

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



/* Удалить всех людей родившихся летом
Создать словарь (Map<String, Date>), и занести в него десять записей по принципу: «фамилия» - «дата рождения».
Удалить из словаря всех людей, родившихся летом.
*/

}