• 0.00

  • 0.00

  • ,

task32.task3213

package com.javarush.task.task32.task3213;

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

/*

Шифр Цезаря

Шифр Цезаря

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

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

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

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

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

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

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

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

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 {

if(reader == null)
return "";
else {
BufferedReader bufferedReader = new BufferedReader(reader);
String string = bufferedReader.readLine();
char[] charArray = string.toCharArray();
String result = "";
char ch;
for (int i = 0; i < charArray.length; i++) {
ch = charArray[i];
if (((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z'))) {
result += (char) (ch + key);
} else
result += (char) (ch);
}
return result;
}
}

}

Help!
Вродь все работает но валидатор все равно не проходит
  • ,

task31.task3113

package com.javarush.task.task31.task3113;

import java.io.IOException; import java.nio.file.; import java.nio.file.attribute.BasicFileAttributes; import java.util.;

import static java.nio.file.FileVisitResult.CONTINUE;

/* Что внутри папки?

Что внутри папки?

Напиши программу, которая будет считать подробную информацию о папке и выводить ее на консоль.

Первым делом считай путь к папке с консоли.

Если введенный путь не является директорией — выведи «[полный путь] — не папка» и заверши работу.

Затем посчитай и выведи следующую информацию:

Всего папок — [количество папок в директории]

Всего файлов — [количество файлов в директории и поддиректориях]

Общий размер — [общее количество байт, которое хранится в директории]

Используй только классы и методы из пакета java.nio. */public class Solution {

static int countPapok =-1;

static int countFiles =0;
static long massaPapki = 0;

public static void main(String[] args) throws IOException

{

BufferedReader scan = new BufferedReader(new InputStreamReader(System.in));

String path = scan.readLine();

Path pathFile = Paths.get(path);

if(!Files.isDirectory(pathFile))

{

out.println(pathFile.toAbsolutePath()+" — не папка");

return;

}
else

{
Files.walkFileTree(pathFile,new SimpleFileVisitor(){

@Override

public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {

countFiles++;
massaPapki+=Files.size(file);

return FileVisitResult.CONTINUE;
}

@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {

countPapok++;

return FileVisitResult.CONTINUE;
}
});
}

System.out.println(«Всего папок — » + countPapok);
System.out.println(«Всего файлов — » + countFiles);
System.out.println(«Общий размер — » + massaPapki);

scan.close();

}
}
Переписал код
  • ,

task31.task3101

package com.javarush.task.task31.task3101;

import java.io.*;
import java.util.*;

/*
Проход по дереву файлов

1. На вход метода main подаются два параметра.
Первый — path — путь к директории, второй — resultFileAbsolutePath — имя файла, который будет содержать результат.
2. Для каждого файла в директории path и в ее всех вложенных поддиректориях выполнить следующее:
2.1. Если у файла длина в байтах больше 50, то удалить его (используй метод FileUtils.deleteFile).
2.2. Если у файла длина в байтах НЕ больше 50, то для всех таких файлов:
2.2.1. Отсортировать их по имени файла в возрастающем порядке, путь не учитывать при сортировке.
2.2.2. Переименовать resultFileAbsolutePath в ‘allFilesContent.txt‘ (используй метод FileUtils.renameFile).
2.2.3. В allFilesContent.txt последовательно записать содержимое всех файлов из п. 2.2.1. Тела файлов разделять «n«.
Все файлы имеют расширение txt.
*/
public class Solution {
public static void main(String[] args) throws IOException {
String path = «D:\\Directory»;
String resultFileAbsolutePath = «D:\\Direct.txt»;

File file = new File(path);
Queuequeue = new PriorityQueue<>();
Collections.addAll(queue, file.listFiles());
ArrayListarrayFiles = new ArrayList<>();
ArrayListfileNames = new ArrayList<>();
ArrayListvuhod = new ArrayList<>();
File res = new File(resultFileAbsolutePath);
if (!res.exists())
res.createNewFile();

while (!queue.isEmpty()) {
File file1 = queue.poll();
if (file1.getAbsolutePath().equals(res.getAbsolutePath())) {

} else {
if (file1.isDirectory())
Collections.addAll(queue, file1.listFiles());
else if (file1.length() > 50)
FileUtils.deleteFile(file1);
else if (file1.length() <= 50)

{

arrayFiles.add(file1);
fileNames.add(file1.getName());

}
}
}
Collections.sort(fileNames);

for (int i = 0; i < fileNames.size(); i++) {
if (i == 0) {
} else {
if (fileNames.get(i) == fileNames.get(i — 1)) {
fileNames.remove(i);
}
}
}
for (int i = 0; i < fileNames.size(); i++) {
for (int j = 0; j < arrayFiles.size(); j++) {
if (fileNames.get(i).equals(arrayFiles.get(j).getName())) {
vuhod.add(arrayFiles.get(j));
}
}
}

File res1 = new File(res.getParent() + "\\allFilesContent.txt");

FileUtils.renameFile(res, res1);

BufferedWriter writer = new BufferedWriter(new FileWriter(res1));

for (File f: vuhod) {
BufferedReader reader = new BufferedReader(new FileReader(f));
String line;
while ((line = reader.readLine()) != null) {
writer.write(line);

}
reader.close();
writer.write(«n»);
}

writer.close();

}

public static void deleteFile(File file) {
if (!file.delete()) System.out.println(«Can not delete file with name » + file.getName());
}
}