-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTask2.java
More file actions
66 lines (59 loc) · 2.37 KB
/
Task2.java
File metadata and controls
66 lines (59 loc) · 2.37 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
package Work01.Unit04;
import java.io.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Task2 {
/**
* Задание 2
* Пусть дан LinkedList с несколькими элементами.
* Реализуйте метод, который вернет “перевернутый” список.
*/
public static void LinkedList() {
String str = Scanner();
// Строка неизменна
str = reverse(str);
System.out.println("\nРеверс данной строки: \n" + str);
}
public static String reverse(String str) {
// базовый случай: если строка нулевая или пустая
if (str == null || str.equals("")) {
return str;
}
// создаем пустой список символов
List<Character> list = new ArrayList<>();
// помещаем туда каждый символ заданной строки
for (char c : str.toCharArray()) {
list.add(c);
}
// обратный список с использованием `java.util.Collections` `reverse()`
Collections.reverse(list);
// преобразовать `ArrayList` в строку с помощью `StringBuilder` и вернуть ее
StringBuilder builder = new StringBuilder(list.size());
for (Character c : list) {
builder.append(c);
}
return builder.toString();
}
public static String Scanner() {
InputStream is = Task2.class.getResourceAsStream("/Data/test.txt");
assert is != null;
BufferedReader file = new BufferedReader(new InputStreamReader(is));
// File file = new File("/Data/test.txt");
String line = null;
// try {
Scanner scanner = new Scanner(file);
// обрабатываем файл пока в нем еще есть токен
// в данном случае - есть ли новая строка
while (scanner.hasNextLine()) {
line = scanner.nextLine();
// печатаем построчно
System.out.println(line);
}
// } catch (FileNotFoundException e) {
// e.printStackTrace();
// }
return line;
}
}