• ,

com.javarush.task.task32.task3213 не проходит тестирование

Шифр Цезаря

Привет Амиго. Ты знаешь, за нами следят, просматривают нашу переписку. Поэтому нужно шифровать трафик.

Для тебя не составит труда реализовать шифр Цезаря, напомню что это просто сдвиг вправо по алфавиту на key букв.

В методе main есть хороший пример.

Реализуй логику метода String decode(StringReader reader, int key).

Метод получает данные в закодированном виде.

Он должен вернуть дешифрованную строку, что хранится в StringReader — е.

Возвращаемый объект ни при каких условиях не должен быть null.

Метод main не участвует в тестировании.

package com.javarush.task.task32.task3213;

import java.io.IOException;
import java.io.StringReader;

/* 
Шифр Цезаря
*/

public class Solution {
    public static void main(String[] args) throws IOException {
        StringReader reader = new StringReader("Khoor Dpljr");
        System.out.println(decode(reader, -3));  //Hello Amigo

    }

    public static String decode(StringReader reader, int key) throws IOException {

        StringBuilder sb = new StringBuilder();
        int i = 0;
        try {
            while((i=reader.read())!=-1){
                int k =  i + key;

                char c = (char)k;

                sb.append©;

            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        String line = sb.toString();
        if (line == null){
            line = "ничего не пришло";
        }
        return line;
    }

}


Почему не проходит? Вывод в конце Hello Amigo. Вроде все верно
  • ,

task.task18.task1824

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

Может кто найдёт что я делаю не так?

package com.javarush.task.task18.task1824;

/* 
Файлы и исключения
*/

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

public class Solution {
    public static void main(String[] args) {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        String filename;
        do {
            try {
                filename = bufferedReader.readLine();
                BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(filename));
                bufferedInputStream.available();
                bufferedInputStream.close();
            }
            catch(FileNotFoundException e) {
                System.out.println(e.getMessage());
                break;
            }
            catch(IOException e) {
                e.printStackTrace();
                break;
            }
        }
        while(true);
        try {
            bufferedReader.close();
        }
        catch(IOException e) {
            e.printStackTrace();
        }
    }
}
  • ,

task.task18.task1824

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

Может кто найдёт что я делаю не так?

package com.javarush.task.task18.task1824;

/* 
Файлы и исключения
*/

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

public class Solution {
    public static void main(String[] args) {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        String filename;
        do {
            try {
                filename = bufferedReader.readLine();
                BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(filename));
                bufferedInputStream.available();
                bufferedInputStream.close();
            }
            catch(FileNotFoundException e) {
                System.out.println(e.getMessage());
                break;
            }
            catch(IOException e) {
                e.printStackTrace();
                break;
            }
        }
        while(true);
        try {
            bufferedReader.close();
        }
        catch(IOException e) {
            e.printStackTrace();
        }
    }
}
  • ,

com.javarush.test.level04.lesson07.task02 не проходит проверку

Не могу разобраться, почему не проходит проверка. Кто-то сможет пояснить в чем ошибка? Спасибо.

package com.javarush.test.level04.lesson07.task02;

/* Строка - описание
Ввести с клавиатуры целое число в диапазоне 1 - 999. Вывести его строку-описание следующего вида:
«четное однозначное число» - если число четное и имеет одну цифру,
«нечетное однозначное число» - если число нечетное и имеет одну цифру,
«четное двузначное число» - если число четное и имеет две цифры,
«нечетное двузначное число» - если число нечетное и имеет две цифры,
«четное трехзначное число» - если число четное и имеет три цифры,
«нечетное трехзначное число» - если число нечетное и имеет три цифры.
Если введенное число не попадает в диапазон 1 - 999, в таком случае ничего не выводить на экран.
Пример для числа 100:
четное трехзначное число
Пример для числа 51:
нечетное двузначное число
*/

import java.io.*;

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

        if (a >= 1 && a <= 999) System.out.println(odd(a) + " " + xxx(a) + " число");
        else return;

    }



    static String odd(int a) {
        if (a % 2 == 0) return "четное";
        else return "нечетное";
    }

    static String xxx(int a) {
        if (a < 10) return "однозначное";
        else if (a < 100) return "двухзначное";
        else return "трехзначное";
    }
}