From 95f36f58e77610a2df699f9df43db5a105806e1e Mon Sep 17 00:00:00 2001 From: Valerii Glavatskih Date: Thu, 27 May 2021 21:16:49 +0400 Subject: [PATCH 1/6] Test commit. --- src/main/java/com/epam/izh/rd/online/Main.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/epam/izh/rd/online/Main.java b/src/main/java/com/epam/izh/rd/online/Main.java index 8306d877..8f53003a 100644 --- a/src/main/java/com/epam/izh/rd/online/Main.java +++ b/src/main/java/com/epam/izh/rd/online/Main.java @@ -1,4 +1,5 @@ package com.epam.izh.rd.online; public class Main { + //test commit } From 4f6b7e952dcf207b5b4bb307639d2a54ca8d41f8 Mon Sep 17 00:00:00 2001 From: Valerii Glavatskih Date: Mon, 31 May 2021 23:11:23 +0400 Subject: [PATCH 2/6] =?UTF-8?q?=E2=84=961.=20=D0=A0=D0=B5=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=20=D0=BA=D0=BB=D0=B0=D1=81?= =?UTF-8?q?=D1=81=20SimpleTextService.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/SimpleFileRepository.java | 1 + .../rd/online/service/SimpleTextService.java | 31 +++++++++++++++---- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/repository/SimpleFileRepository.java b/src/main/java/com/epam/izh/rd/online/repository/SimpleFileRepository.java index 1783b845..36c0954e 100644 --- a/src/main/java/com/epam/izh/rd/online/repository/SimpleFileRepository.java +++ b/src/main/java/com/epam/izh/rd/online/repository/SimpleFileRepository.java @@ -44,6 +44,7 @@ public void copyTXTFiles(String from, String to) { */ @Override public boolean createFile(String path, String name) { + return false; } diff --git a/src/main/java/com/epam/izh/rd/online/service/SimpleTextService.java b/src/main/java/com/epam/izh/rd/online/service/SimpleTextService.java index 68951fbe..79b39b9e 100644 --- a/src/main/java/com/epam/izh/rd/online/service/SimpleTextService.java +++ b/src/main/java/com/epam/izh/rd/online/service/SimpleTextService.java @@ -1,5 +1,7 @@ package com.epam.izh.rd.online.service; +import java.util.Locale; + public class SimpleTextService implements TextService { /** @@ -13,7 +15,7 @@ public class SimpleTextService implements TextService { */ @Override public String removeString(String base, String remove) { - return null; //TODO + return base.replaceAll(remove, ""); } /** @@ -24,7 +26,7 @@ public String removeString(String base, String remove) { */ @Override public boolean isQuestionString(String text) { - return false; //TODO + return text.endsWith("?"); } /** @@ -35,7 +37,12 @@ public boolean isQuestionString(String text) { */ @Override public String concatenate(String... elements) { - return null; //TODO + StringBuilder string = new StringBuilder(); + + for (String element : elements) { + string.append(element); + } + return string.toString(); } /** @@ -47,8 +54,16 @@ public String concatenate(String... elements) { */ @Override public String toJumpCase(String text) { - return null; //TODO - } + char[] chars = text.toCharArray(); + for (int i = 0; i < chars.length; i++) { + if (i % 2 == 0) { + chars[i] = Character.toLowerCase(chars[i]); + } else { + chars[i] = Character.toUpperCase(chars[i]); + } + } + return String.valueOf(chars); + } /** * Метод определяет, является ли строка палиндромом. @@ -59,6 +74,10 @@ public String toJumpCase(String text) { */ @Override public boolean isPalindrome(String string) { - return false; //TODO + StringBuilder stringBuilder = new StringBuilder(string); + String str1 = stringBuilder.reverse().toString(); + if (string.equals("")){ + return false; + }else return string.replaceAll("\\s+", "").toLowerCase(Locale.ROOT).equals(str1.toLowerCase(Locale.ROOT).replaceAll("\\s+", "")); } } From 24dab3f49cea3c92dc7c8bdac8a705d320bb4d06 Mon Sep 17 00:00:00 2001 From: Valerii Glavatskih Date: Mon, 31 May 2021 23:11:32 +0400 Subject: [PATCH 3/6] =?UTF-8?q?=E2=84=961.=20=D0=A0=D0=B5=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=20=D0=BA=D0=BB=D0=B0=D1=81?= =?UTF-8?q?=D1=81=20SimpleTextService.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- java-data-handling-template.iml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 java-data-handling-template.iml diff --git a/java-data-handling-template.iml b/java-data-handling-template.iml new file mode 100644 index 00000000..5e9ffdc5 --- /dev/null +++ b/java-data-handling-template.iml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From e183345081f08c9767a7a212c084f3b00f5fcb12 Mon Sep 17 00:00:00 2001 From: Valerii Glavatskih Date: Tue, 1 Jun 2021 21:24:46 +0400 Subject: [PATCH 4/6] =?UTF-8?q?=E2=84=962.=20=D0=A0=D0=B5=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=20=D0=BA=D0=BB=D0=B0=D1=81?= =?UTF-8?q?=D1=81=20SimpleBigNumbersService.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/SimpleBigNumbersService.java | 41 +++++++++++++++++-- .../rd/online/service/SimpleDateService.java | 2 +- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/service/SimpleBigNumbersService.java b/src/main/java/com/epam/izh/rd/online/service/SimpleBigNumbersService.java index a94c7bba..c4f4b1b6 100644 --- a/src/main/java/com/epam/izh/rd/online/service/SimpleBigNumbersService.java +++ b/src/main/java/com/epam/izh/rd/online/service/SimpleBigNumbersService.java @@ -2,6 +2,9 @@ import java.math.BigDecimal; import java.math.BigInteger; +import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.List; public class SimpleBigNumbersService implements BigNumbersService { @@ -13,9 +16,12 @@ public class SimpleBigNumbersService implements BigNumbersService { */ @Override public BigDecimal getPrecisionNumber(int a, int b, int range) { - return null; + BigDecimal bigDecimalA = new BigDecimal(a); + BigDecimal bigDecimalB = new BigDecimal(b); + return bigDecimalA.divide(bigDecimalB,range, RoundingMode.HALF_UP); } + /** * Метод находит простое число по номеру * @@ -24,6 +30,35 @@ public BigDecimal getPrecisionNumber(int a, int b, int range) { */ @Override public BigInteger getPrimaryNumber(int range) { - return null; + int primaryNumber = 0; + + List primes = new ArrayList<>(); + for (int i = 0; i < 1000; i++) { + if (isPrime(i)) { + primes.add(i); + primaryNumber++; + if (primaryNumber == range + 1){ + primaryNumber = i; + break; + } + } + } + return BigInteger.valueOf(primaryNumber); + } + + private boolean isPrime(int n) { + if (n == 2 || n == 3) { + return true; + } else if (n <= 1 || (n % 2) == 0 || (n % 3) == 0) { + return false; + } + int i = 5; + while (i * i <= n) { + if ((n % i) == 0 || (n % (i + 2)) == 0) { + return false; + } + i += 6; + } + return true; + } } -} diff --git a/src/main/java/com/epam/izh/rd/online/service/SimpleDateService.java b/src/main/java/com/epam/izh/rd/online/service/SimpleDateService.java index 70d64dfd..aaf1e46a 100644 --- a/src/main/java/com/epam/izh/rd/online/service/SimpleDateService.java +++ b/src/main/java/com/epam/izh/rd/online/service/SimpleDateService.java @@ -14,7 +14,7 @@ public class SimpleDateService implements DateService { */ @Override public String parseDate(LocalDate localDate) { - return null; + return Integer.toString(localDate.getDayOfMonth()) + "-" + Integer.toString(localDate.getMonthValue()) + "-" + Integer.toString(localDate.getYear()); } /** From 870f8cee0323682600142e0acf1d2b54bfabdf59 Mon Sep 17 00:00:00 2001 From: Valerii Glavatskih Date: Tue, 1 Jun 2021 23:47:42 +0400 Subject: [PATCH 5/6] =?UTF-8?q?=E2=84=963.=20=D0=A0=D0=B5=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=20=D0=BA=D0=BB=D0=B0=D1=81?= =?UTF-8?q?=D1=81=20SimpleDateService.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/SimpleBigNumbersService.java | 1 - .../rd/online/service/SimpleDateService.java | 22 +++++++++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/service/SimpleBigNumbersService.java b/src/main/java/com/epam/izh/rd/online/service/SimpleBigNumbersService.java index c4f4b1b6..bfa277c5 100644 --- a/src/main/java/com/epam/izh/rd/online/service/SimpleBigNumbersService.java +++ b/src/main/java/com/epam/izh/rd/online/service/SimpleBigNumbersService.java @@ -21,7 +21,6 @@ public BigDecimal getPrecisionNumber(int a, int b, int range) { return bigDecimalA.divide(bigDecimalB,range, RoundingMode.HALF_UP); } - /** * Метод находит простое число по номеру * diff --git a/src/main/java/com/epam/izh/rd/online/service/SimpleDateService.java b/src/main/java/com/epam/izh/rd/online/service/SimpleDateService.java index aaf1e46a..a1c1b3c1 100644 --- a/src/main/java/com/epam/izh/rd/online/service/SimpleDateService.java +++ b/src/main/java/com/epam/izh/rd/online/service/SimpleDateService.java @@ -2,6 +2,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.Year; import java.time.format.DateTimeFormatter; public class SimpleDateService implements DateService { @@ -14,7 +15,7 @@ public class SimpleDateService implements DateService { */ @Override public String parseDate(LocalDate localDate) { - return Integer.toString(localDate.getDayOfMonth()) + "-" + Integer.toString(localDate.getMonthValue()) + "-" + Integer.toString(localDate.getYear()); + return localDate.format(DateTimeFormatter.ofPattern("dd-MM-yyyy")); } /** @@ -25,9 +26,11 @@ public String parseDate(LocalDate localDate) { */ @Override public LocalDateTime parseString(String string) { - return null; + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + return LocalDateTime.parse(string, formatter); } + /** * Метод конвертирует дату в строку с заданным форматом * @@ -37,7 +40,7 @@ public LocalDateTime parseString(String string) { */ @Override public String convertToCustomFormat(LocalDate localDate, DateTimeFormatter formatter) { - return null; + return localDate.format(formatter); } /** @@ -47,7 +50,13 @@ public String convertToCustomFormat(LocalDate localDate, DateTimeFormatter forma */ @Override public long getNextLeapYear() { - return 0; + int year = 2021; + for (int i = 2021; i < year + 4; i++){ + if (Year.of(i).isLeap()){ + year = i; + } + } + return year; } /** @@ -57,8 +66,7 @@ public long getNextLeapYear() { */ @Override public long getSecondsInYear(int year) { - return 0; + Year year1 = Year.of(year); + return year1.length()*86400; } - - } From fcaa5027b5142c7013ef868f6ca8ba7cf6b992fb Mon Sep 17 00:00:00 2001 From: Valerii Glavatskih Date: Fri, 11 Jun 2021 21:17:42 +0400 Subject: [PATCH 6/6] =?UTF-8?q?=E2=84=964.=20=D0=A0=D0=B5=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=20=D0=BA=D0=BB=D0=B0=D1=81?= =?UTF-8?q?=D1=81=20SimpleRegExpService.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epam/izh/rd/online/Main.java | 8 +++- .../repository/SimpleFileRepository.java | 33 +++++++++++--- .../online/service/SimpleRegExpService.java | 43 ++++++++++++++++++- 3 files changed, 76 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/Main.java b/src/main/java/com/epam/izh/rd/online/Main.java index 8f53003a..aedf04ef 100644 --- a/src/main/java/com/epam/izh/rd/online/Main.java +++ b/src/main/java/com/epam/izh/rd/online/Main.java @@ -1,5 +1,11 @@ package com.epam.izh.rd.online; +import com.epam.izh.rd.online.repository.FileRepository; +import com.epam.izh.rd.online.repository.SimpleFileRepository; + public class Main { - //test commit + public static void main(String[] args) { +// SimpleFileRepository simpleFileRepository = new SimpleFileRepository(); +// simpleFileRepository.createFile("testDirCreateFile/", "sex.txt"); + } } diff --git a/src/main/java/com/epam/izh/rd/online/repository/SimpleFileRepository.java b/src/main/java/com/epam/izh/rd/online/repository/SimpleFileRepository.java index 36c0954e..7e996c47 100644 --- a/src/main/java/com/epam/izh/rd/online/repository/SimpleFileRepository.java +++ b/src/main/java/com/epam/izh/rd/online/repository/SimpleFileRepository.java @@ -1,16 +1,25 @@ package com.epam.izh.rd.online.repository; +import java.io.File; +import java.io.IOException; +import java.util.Arrays; +import java.util.List; + public class SimpleFileRepository implements FileRepository { /** * Метод рекурсивно подсчитывает количество файлов в директории * - * @param path путь до директори + * @param path путь до директории * @return файлов, в том числе скрытых */ @Override public long countFilesInDirectory(String path) { - return 0; + File dir = new File(path); //path указывает на директорию + File[] arrFiles = dir.listFiles(); + assert arrFiles != null; + List lst = Arrays.asList(arrFiles); + return lst.size(); } /** @@ -21,7 +30,12 @@ public long countFilesInDirectory(String path) { */ @Override public long countDirsInDirectory(String path) { - return 0; + + File dir = new File(path); //path указывает на директорию + File[] arrFiles = dir.listFiles(); + assert arrFiles != null; + List lst = Arrays.asList(arrFiles); + return lst.size() + 1; } /** @@ -44,10 +58,19 @@ public void copyTXTFiles(String from, String to) { */ @Override public boolean createFile(String path, String name) { - - return false; + File file = new File(path + name); + try { + file.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + if (file.exists()){ + }return true; } + + + /** * Метод считывает тело файла .txt из папки src/main/resources * diff --git a/src/main/java/com/epam/izh/rd/online/service/SimpleRegExpService.java b/src/main/java/com/epam/izh/rd/online/service/SimpleRegExpService.java index b6eff56b..6b1db232 100644 --- a/src/main/java/com/epam/izh/rd/online/service/SimpleRegExpService.java +++ b/src/main/java/com/epam/izh/rd/online/service/SimpleRegExpService.java @@ -1,5 +1,11 @@ package com.epam.izh.rd.online.service; +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + public class SimpleRegExpService implements RegExpService { /** @@ -11,7 +17,19 @@ public class SimpleRegExpService implements RegExpService { */ @Override public String maskSensitiveData() { - return null; + String path = "src/main/resources/sensitive_data.txt"; + String text = null; + String newText = null; + + try (BufferedReader br = new BufferedReader(new FileReader(path))) { + text = br.readLine(); + } catch (IOException e) { + System.out.println("Файл не найден"); + } + Pattern pattern = Pattern.compile("(\\s\\d{4}\\s)\\d{4}\\s\\d{4}\\s(\\d{4}\\s)"); //("[0-9]\\s[\\d]{4}\\s[\\d]{4}\\s") + Matcher matcher = pattern.matcher(text); + newText = matcher.replaceAll("$1**** **** $2"); + return newText; } /** @@ -22,6 +40,27 @@ public String maskSensitiveData() { */ @Override public String replacePlaceholders(double paymentAmount, double balance) { - return null; + String path = "src/main/resources/sensitive_data.txt"; + String text = null; + String newText = null; + + try (BufferedReader br = new BufferedReader(new FileReader(path))) { + text = br.readLine(); + } catch (IOException e) { + System.out.println("Файл не найден"); + } + + String stringPaymentAmount = String.valueOf((int) paymentAmount); + Pattern paymentPattern = Pattern.compile("\\$\\{payment_amount\\}"); + Matcher paymentMatcher = paymentPattern.matcher(text); + newText = paymentMatcher.replaceFirst(stringPaymentAmount); + + String stringBalance = String.valueOf((int) balance); + Pattern balancePattern = Pattern.compile("\\$\\{balance\\}"); + Matcher balanceMatcher = balancePattern.matcher(newText); + newText = balanceMatcher.replaceFirst(stringBalance); + + return newText; } } +