Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion src/main/java/com/epam/izh/rd/online/Main.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,26 @@
package com.epam.izh.rd.online;

import com.epam.izh.rd.online.service.*;

import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;

public class Main {
}
public static void main(String[] args) throws IOException {
SimpleRegExpService simpleRegExpService = new SimpleRegExpService();
System.out.println(simpleRegExpService.maskSensitiveData());
System.out.println(simpleRegExpService.replacePlaceholders(2,6));
/*
SimpleTextService simpleTextService = new SimpleTextService();
System.out.println(simpleTextService.removeString("Hello, hello, hello, how low?", ", he"));
System.out.println(simpleTextService.isQuestionString("HHHbgaghaj jjshdsgd hdhdhdh"));
System.out.println(simpleTextService.concatenate("Hi", " ", "all", " ", "boys"));
System.out.println(simpleTextService.toJumpCase("First string, second string"));
System.out.println(simpleTextService.isPalindrome("а роза упала на лапу Азора"));
System.out.println(simpleTextService.isPalindrome("а роза уп на лапу Азора"));
System.out.println(simpleTextService.isPalindrome(","));
*/

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;
import java.util.stream.IntStream;

public class SimpleBigNumbersService implements BigNumbersService {

Expand All @@ -13,9 +15,17 @@ public class SimpleBigNumbersService implements BigNumbersService {
*/
@Override
public BigDecimal getPrecisionNumber(int a, int b, int range) {
return null;
return new BigDecimal(a).divide(new BigDecimal(b), range, RoundingMode.HALF_UP);
}

public boolean isSimple(int number){
for (int i = 2; i < (Math.sqrt(number)+2); i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
/**
* Метод находит простое число по номеру
*
Expand All @@ -24,6 +34,20 @@ public BigDecimal getPrecisionNumber(int a, int b, int range) {
*/
@Override
public BigInteger getPrimaryNumber(int range) {
return null;
int simpleNumber = 2;
if (range == 0){
simpleNumber = 0;
}else
{
if (range >= 2){
simpleNumber = 3;
for (int i = 2; i < range ; i++) {
do {
simpleNumber += 2;
} while (!isSimple(simpleNumber));
}
}
}
return BigInteger.valueOf(simpleNumber);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Year;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.TimeUnit;

public class SimpleDateService implements DateService {

Expand All @@ -14,7 +16,8 @@ public class SimpleDateService implements DateService {
*/
@Override
public String parseDate(LocalDate localDate) {
return null;
DateTimeFormatter formatters = DateTimeFormatter.ofPattern("dd-MM-uuuu");
return localDate.format(formatters);
}

/**
Expand All @@ -25,7 +28,8 @@ 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);
}

/**
Expand All @@ -37,7 +41,7 @@ public LocalDateTime parseString(String string) {
*/
@Override
public String convertToCustomFormat(LocalDate localDate, DateTimeFormatter formatter) {
return null;
return localDate.format(formatter);
}

/**
Expand All @@ -47,7 +51,10 @@ public String convertToCustomFormat(LocalDate localDate, DateTimeFormatter forma
*/
@Override
public long getNextLeapYear() {
return 0;
LocalDate now = LocalDate.now();
long year = now.getYear();
while (!Year.isLeap(++year));
return year;
}

/**
Expand All @@ -56,9 +63,8 @@ public long getNextLeapYear() {
* @return число секунд
*/
@Override
public long getSecondsInYear(int year) {
return 0;
public long getSecondsInYear(int year)
{
return TimeUnit.DAYS.toSeconds( Year.of(year).length() );
}


}
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package com.epam.izh.rd.online.service;

import java.io.*;
import java.nio.charset.Charset;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class SimpleRegExpService implements RegExpService {

/**
Expand All @@ -11,7 +16,33 @@ public class SimpleRegExpService implements RegExpService {
*/
@Override
public String maskSensitiveData() {
return null;
StringBuilder result = new StringBuilder();
String regex = "(\\d{4}\\s){4}";
Pattern pattern = Pattern.compile(regex);

String fileName = // "/sensitive_data.txt";
File.separator + "sensitive_data.txt";

ClassLoader classLoader = getClass().getClassLoader();
try (InputStream is = classLoader.getResourceAsStream(fileName);
BufferedReader reader = new BufferedReader(new InputStreamReader(is, Charset.defaultCharset())))
{
String line;
while ((line = reader.readLine()) != null)
{
Matcher matcher = pattern.matcher(line);
StringBuilder stringBuilder = new StringBuilder(line);
while (matcher.find()) {
stringBuilder.replace(matcher.start()+4,matcher.end()-5," **** **** ");
}
result.append(stringBuilder);
}

} catch (IOException e) {
e.printStackTrace();
}

return result.toString();
}

/**
Expand All @@ -22,6 +53,33 @@ public String maskSensitiveData() {
*/
@Override
public String replacePlaceholders(double paymentAmount, double balance) {
return null;
// String result = "";
StringBuilder result = new StringBuilder();
String regex1 = "\\$\\{payment_amount}";
Pattern pattern1 = Pattern.compile(regex1);
String regex2 = "\\$\\{balance}";
Pattern pattern2 = Pattern.compile(regex2);

String fileName = // "/sensitive_data.txt";
File.separator + "sensitive_data.txt";

ClassLoader classLoader = getClass().getClassLoader();
try (InputStream is = classLoader.getResourceAsStream(fileName);
BufferedReader reader = new BufferedReader(new InputStreamReader(is, Charset.defaultCharset())))
{
String line;
while ((line = reader.readLine()) != null)
{
line = line.replaceAll(regex1, Integer.toString((int)paymentAmount));
line = line.replaceAll(regex2, Integer.toString((int)balance));

result.append(line);
}

} catch (IOException e) {
e.printStackTrace();
}

return result.toString();
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.epam.izh.rd.online.service;

import java.util.Arrays;

public class SimpleTextService implements TextService {

/**
Expand All @@ -12,8 +14,9 @@ public class SimpleTextService implements TextService {
* @param remove - строка которую необходимо удалить
*/
@Override
public String removeString(String base, String remove) {
return null; //TODO
public String removeString(String base, String remove)
{
return base.replaceAll(remove, "");
}

/**
Expand All @@ -23,8 +26,9 @@ public String removeString(String base, String remove) {
* Например для строки "Hello, hello, hello!" метод вернет false
*/
@Override
public boolean isQuestionString(String text) {
return false; //TODO
public boolean isQuestionString(String text)
{
return text.endsWith("?");
}

/**
Expand All @@ -34,8 +38,14 @@ public boolean isQuestionString(String text) {
* метод вернет "Smells Like Teen Spirit"
*/
@Override
public String concatenate(String... elements) {
return null; //TODO
public String concatenate(String... elements)
{
StringBuilder result = new StringBuilder();
for (String s: elements)
{
result.append(s);
}
return result.toString();
}

/**
Expand All @@ -47,7 +57,12 @@ public String concatenate(String... elements) {
*/
@Override
public String toJumpCase(String text) {
return null; //TODO
char[] result = text.toCharArray();
for (int i = 0; i < result.length-1; i += 2) {
result[i] = Character.toLowerCase(result[i]);
result[i+1] = Character.toUpperCase(result[i+1]);
}
return String.valueOf(result);
}

/**
Expand All @@ -59,6 +74,10 @@ public String toJumpCase(String text) {
*/
@Override
public boolean isPalindrome(String string) {
return false; //TODO
StringBuilder stringBuilder = new StringBuilder(string.replaceAll("\\s", ""));
if (string.length() > 1)
{
return (stringBuilder.toString().equalsIgnoreCase(stringBuilder.reverse().toString()));
}else return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ void testGetPrecisionNumber() {
@Test
@DisplayName("Тест метода BigNumbersService.getPrimaryNumber(int range)")
void testGetPrimaryNumber() {
assertEquals(BigInteger.valueOf(547), bigNumbersService.getPrimaryNumber(100),
"Для вызова метода: bigNumbersService.getPrimaryNumber(100)");
assertEquals(BigInteger.valueOf(547), bigNumbersService.getPrimaryNumber(101),
"Для вызова метода: bigNumbersService.getPrimaryNumber(101)");
}
}