• ,

package com.javarush.task.task17.task1711;

Всем привет! Необходима помощь в решении задачи. Новый валидатор в данном случае доволен всем, кроме одного пункта: «Каждый case оператора switch должен иметь блок синхронизации по allPeople». Но у меня же есть блок синхронизации по allPeople. Как тут быть? :)
Снизу скрин валидатора!

test.level19.lesson10.home07 Нужна помощь!

package com.javarush.test.level19.lesson10.home07;
Условия задания выполнил. Подскажите, пожалуйста, почему не проходит проверку??

/* Длинные слова
В метод main первым параметром приходит имя файла1, вторым — файла2
Файл1 содержит слова, разделенные пробелом.
Записать через запятую в Файл2 слова, длина которых строго больше 6
Закрыть потоки. Не использовать try-with-resources

Пример выходных данных:
длинное, короткое, аббревиатура
*/

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

public class Solution {
    public static void main(String[] args) throws IOException
    {
        String fileName1 = args[0];
        String fileName2 = args[1];
        BufferedReader br = new BufferedReader(new FileReader(fileName1));
        FileWriter fw = new FileWriter(fileName2);
        String line = "";
        String[] array;
        ArrayList<String> list = new ArrayList<String>();
        while ((line = br.readLine()) != null)
        {
            array = line.replaceAll("\\pP", "").split(" ");
            for (String s : array)
            {
                if (s.length()>6)
                {
                    list.add(s);
                }
            }
        }
        for (int i = 0; i<list.size(); i++)
        {
            if (i == list.size() - 1)
            {
                fw.write(list.get(i).toLowerCase());
            }
            else
            {
                fw.write(list.get(i).toLowerCase() + ",");
            }
        }
        br.close();
        fw.close();
    }
}
  • ,

level08.lesson11.home09

Здравствуйте! Подскажите, пожалуйста, в чём проблема? Программа вроде как работает правильно и для високосных годов, но тестирование проходить отказывается.
Upd.1 Условие: 1. Реализовать метод isDateOdd(String date) так, чтобы он возвращал true, если количество дней с начала года — нечетное число, иначе false
2. String date передается в формате MAY 1 2013
Не забудьте учесть первый день года.

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

import java.util.*;

public class Solution
{
    public static void main(String[] args)
    {
        String date = "MARCH 1 2020";
        System.out.println(isDateOdd(date));
    }

    public static boolean isDateOdd(String date)
    {
        Date date1 = new Date(date);
        Calendar c = new GregorianCalendar(date1.getYear(), date1.getMonth(), date1.getDate());
        return (c.DAY_OF_YEAR % 2 == 0);
    }
}
  • ,

com.javarush.test.level08.lesson11.home09

Уважаемые Support'аловцы.
Подскажите, пожалуйста, почему не проходит валидацию на сервере?
Слегка усложнил задачу. В примере описанном ниже, метод isDateOdd(String date) считает количество дней с начала года, исходя из текущей даты. Таким же образом, я постарался получить год текущий год. В целом — результат получаю корректный (учитывая, что проверяю 17 ноября 2015г., т.е. сегодня) в виде:

«C:\Program…
NOVEMBER 17 2015 = false
Process finished with exit code 0

Очень хочется получить ответы на вопрос: Корректно ли обрабатывается условие задачи, либо я что-то упустил и в упор не вижу? И если некорректно, то хоть намекните где искать. Буду очень признателен за помощь.

P.S.: Мой первый пост на форуме. Если будут конструктивные замечания по оформлению — постараюсь принять к сведению.


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

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

/* Работа с датой
1. Реализовать метод isDateOdd(String date) так, чтобы он возвращал true, если количество дней с начала года - нечетное число, иначе false
2. String date передается в формате MAY 1 2013
Не забудьте учесть первый день года.
Пример:
JANUARY 1 2000 = true
JANUARY 2 2020 = false
*/

public class Solution
{
    public static void main(String[] args)
    {
        Date currentDate = CatchCurrentDate();
        SimpleDateFormat dateFormat = new SimpleDateFormat("MMMM d YYYY", Locale.ENGLISH); // форматируем текст по шаблону указанному в задании.
        String date = (dateFormat.format(currentDate).toUpperCase());

        System.out.print(dateFormat.format(currentDate).toUpperCase() + " = " + isDateOdd(date));
    }

    public static boolean isDateOdd(String date)
    {
        Date currentDate = CatchCurrentDate();
        Date yearStartDate = new Date();

        {
            yearStartDate.setYear(currentDate.getYear()); // определяем текущий год. Устанавливаем его значением year для yearStartDate.
            yearStartDate.setMonth(0);
            yearStartDate.setDate(1); // год не может начинаться с 0 дней. Вывод = первый день месяца = 1.
            yearStartDate.setHours(0);
            yearStartDate.setMinutes(0);
            yearStartDate.setSeconds(0);
        }

        long msTimeDistance = currentDate.getTime() - yearStartDate.getTime();
        long msDay = 24*60*60*1000;

        int dayCount = (int)(msTimeDistance/msDay);
        if (dayCount%2 != 0) //True, если количество дней с начала года - нечетное число
            return true;
        else
            return false;

    }

    public static Date CatchCurrentDate ()
    {
        Date currentDate = new Date();
        return currentDate;
    }
}


Все комментарии // были добавлены уже после проверки валидатором.
  • ,

Вопрос по задаче com.javarush.test.level09.lesson02.task04

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

Написал return method(n) где не било так и решил.
Только по условию Стек-трейс по условию 10, а по факту у нас будет 12, так как еще main() + getStackTrace()
Возможно я что-то не правильно понимаю в условии

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        method1();
    }

    public static StackTraceElement[] method1()
    {
        return method2();
    }

    public static StackTraceElement[] method2()
    {
        //напишите тут ваш код
       

    }

    public static StackTraceElement[] method3()
    {
        //напишите тут ваш код
        

    }

    public static StackTraceElement[] method4()
    {
        //напишите тут ваш код
        

    }

    public static StackTraceElement[] method5()
    {
        //напишите тут ваш код
       
        

    }

    public static StackTraceElement[] method6()
    {
        //напишите тут ваш код
        
    }

    public static StackTraceElement[] method7()
    {
        //напишите тут ваш код
        

    }

    public static StackTraceElement[] method8()
    {
        //напишите тут ваш код
        

    }

    public static StackTraceElement[] method9()
    {
        return method10();
    }

    public static StackTraceElement[] method10()
    {
        return Thread.currentThread().getStackTrace();
    }
}

level08.lesson11.home09

Ребята, я вас очень прошу, прям умоляю, скажите, что же здесь не так??? Задача сама работает, вот только не ясно, что надо делать в main, надо считывать дату, надо выводить результат роботы, что вообще делать? Подскажите, прошу вас!

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

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Date;
import java.util.HashSet;

/* Работа с датой
1. Реализовать метод isDateOdd(String date) так, чтобы он возвращал true, если количество дней с начала года - нечетное число, иначе false
2. String date передается в формате MAY 1 2013
Пример:
JANUARY 1 2000 = true
JANUARY 2 2020 = false
*/

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

    public static boolean isDateOdd(String date)
    {
        Date x = new Date(date);
        HashSet<Integer> d30 = new HashSet<Integer>();
        HashSet<Integer> d31 = new HashSet<Integer>();
        d30.add(3);
        d30.add(5);
        d30.add(8);
        d30.add(10);
        d31.add(0);
        d31.add(2);
        d31.add(4);
        d31.add(6);
        d31.add(7);
        d31.add(9);
        d31.add(11);
        int y = x.getMonth();
        int r = 0;
        for (int i = 0; i < y; i++)
        {
            if (d30.contains(y))
                r += 30;
            else if (d31.contains(y))
                r += 31;
            else
            {
                int year = x.getYear();
                if (year % 400 == 0)
                    r += 29;
                else
                    r += 28;
            }
        }
        r += x.getDate();
        return r % 2 == 1;
    }
}
  • ,

package com.javarush.test.level04.lesson16.home03;

Подскажите, почему не проходит тестирование?
package com.javarush.test.level04.lesson16.home03;

/* Посчитать сумму чисел
Вводить с клавиатуры числа и считать их сумму. Если пользователь ввел -1, вывести на экран сумму и завершить программу.  -1 должно учитываться в сумме.
*/

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

public class Solution
{
    public static int result = 0;
    public static void main(String[] args)   throws Exception
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        Boolean isExit = false;
        int i = 0;
        while(!isExit){
            i = Integer.parseInt(reader.readLine());
            result += i;
            isExit = Integer.toString(i).equals("-1");
        }
        System.out.print(result);
    }
}