-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSolution.java
More file actions
69 lines (40 loc) · 2.21 KB
/
Solution.java
File metadata and controls
69 lines (40 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//Hitherto have ye asked nothing in my name: ask, and ye shall receive, that your joy may be full. (John 16:24)
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 {
int a;
StringBuffer result = new StringBuffer();
try {
while ((a = reader.read()) != -1) {
result.append(Character.toString((char) (a + key)));
}
} catch (Exception e) {
return new String();
}
return result.toString();
}
}
/*
Шифр Цезаря
Привет Амиго. Ты знаешь, за нами следят, просматривают нашу переписку. Поэтому нужно шифровать трафик.
Для тебя не составит труда реализовать шифр Цезаря, напомню что это просто сдвиг вправо по алфавиту на key букв.
В методе main есть хороший пример.
Реализуй логику метода String decode(StringReader reader, int key).
Метод получает данные в закодированном виде.
Он должен вернуть дешифрованную строку, что хранится в StringReader - е.
Возвращаемый объект ни при каких условиях не должен быть null.
Метод main не участвует в тестировании.
Требования:
1. Класс Solution должен содержать метод String decode(StringReader reader, int key).
2. Метод decode(StringReader reader, int key) должен вернуть дешифрованную строку что хранится в StringReader - е.
3. Возвращаемый объект ни при каких условиях не должен быть null.
*/