diff --git a/src/main/java/ru/job4j/io/Task14.java b/src/main/java/ru/job4j/io/Task14.java new file mode 100644 index 0000000..f7fc0c7 --- /dev/null +++ b/src/main/java/ru/job4j/io/Task14.java @@ -0,0 +1,11 @@ +package ru.job4j.io; + +public class Task14 { + public static void main(String[] args) { + // YOUR CODE + String greeting = "Hello, friend!"; + String[] split = greeting.replaceAll("\\s+", "").split(""); + String result = String.join("-", split).replace("-!", "!"); + System.out.print(result); + } +} diff --git a/src/main/java/ru/job4j/io/Task15.java b/src/main/java/ru/job4j/io/Task15.java new file mode 100644 index 0000000..8ec9b9b --- /dev/null +++ b/src/main/java/ru/job4j/io/Task15.java @@ -0,0 +1,13 @@ +package ru.job4j.io; + +public class Task15 { + public static void main(String[] args) { + String source = "+!?"; + // YOUR CODE + String[] symbols = source.split(""); + String string = symbols[0].repeat(3) + System.lineSeparator() + + symbols[1].repeat(4) + System.lineSeparator() + + symbols[2].repeat(2); + System.out.print(string); + } +} diff --git a/src/main/java/ru/job4j/io/Task16.java b/src/main/java/ru/job4j/io/Task16.java new file mode 100644 index 0000000..f7bf482 --- /dev/null +++ b/src/main/java/ru/job4j/io/Task16.java @@ -0,0 +1,12 @@ +package ru.job4j.io; + +public class Task16 { + public static void main(String[] args) { + String source = "+!?"; + // YOUR CODE + String[] symbols = source.split(""); + String string = symbols[0].repeat(3) + + symbols[1].repeat(4) + symbols[2].repeat(2); + System.out.print(string); + } +} diff --git a/src/main/java/ru/job4j/io/Task17.java b/src/main/java/ru/job4j/io/Task17.java new file mode 100644 index 0000000..ac44849 --- /dev/null +++ b/src/main/java/ru/job4j/io/Task17.java @@ -0,0 +1,11 @@ +package ru.job4j.io; + +public class Task17 { + public static void main(String[] args) { + // YOUR CODE + int x = 6; + System.out.println(x); + System.out.println(x * x); + System.out.print(x * x * x); + } +} diff --git a/src/main/java/ru/job4j/io/Task18.java b/src/main/java/ru/job4j/io/Task18.java new file mode 100644 index 0000000..8a29ec9 --- /dev/null +++ b/src/main/java/ru/job4j/io/Task18.java @@ -0,0 +1,10 @@ +package ru.job4j.io; + +public class Task18 { + public static void main(String[] args) { + // YOUR CODE + int x = 9; + System.out.println("Значение x равно " + x); + System.out.print("Значение x^2 равно " + (x * x)); + } +} diff --git a/src/main/java/ru/job4j/io/Task19.java b/src/main/java/ru/job4j/io/Task19.java new file mode 100644 index 0000000..e5424ce --- /dev/null +++ b/src/main/java/ru/job4j/io/Task19.java @@ -0,0 +1,12 @@ +package ru.job4j.io; + +public class Task19 { + public static void main(String[] args) { + // YOUR CODE + int x = 4; + int y = 11; + System.out.println("Значение x равно " + x + "; значение y равно " + y); + System.out.println("Произведение x и y равно " + (x * y)); + System.out.print("Сумма x и y равно " + (x + y)); + } +} diff --git a/src/main/java/ru/job4j/io/Task20.java b/src/main/java/ru/job4j/io/Task20.java new file mode 100644 index 0000000..fe1d164 --- /dev/null +++ b/src/main/java/ru/job4j/io/Task20.java @@ -0,0 +1,19 @@ +package ru.job4j.io; + +public class Task20 { + public static void main(String[] args) { + String fullName = "Фамилия Имя Отчество"; + String phoneNumber = "+7(938) 123-45-67"; + // YOUR CODE + int maxLenght = Math.max(fullName.length(), phoneNumber.length()); + String topBorders = "*".repeat(maxLenght + 4); + String bottomBorders = topBorders; + String result = topBorders + System.lineSeparator(); + result += "* " + fullName + " ".repeat(maxLenght - fullName.length() + 1) + + "*" + System.lineSeparator(); + result += "* " + phoneNumber + " ".repeat(maxLenght - phoneNumber.length() + 1) + + "*" + System.lineSeparator(); + result += bottomBorders; + System.out.print(result); + } +} diff --git a/src/main/java/ru/job4j/io/Task21.java b/src/main/java/ru/job4j/io/Task21.java new file mode 100644 index 0000000..8096b83 --- /dev/null +++ b/src/main/java/ru/job4j/io/Task21.java @@ -0,0 +1,35 @@ +package ru.job4j.io; + +import java.util.Scanner; + +public class Task21 { + public static void main(String[] args) { + Scanner in = new Scanner(System.in); + int columnCount = in.nextInt(); + String star = "*"; + String space = " "; + // YOUR CODE + int level = 2; + String topSide = star.repeat(columnCount); + int currentColumn = 1; + // Количество символов на каждом уровне кроме первого и последнего, чтобы не печатать ненужные крайние пробелы. + int levelColumnCount; + StringBuilder result = new StringBuilder(topSide).append(System.lineSeparator()); + while (level < columnCount) { + levelColumnCount = level <= columnCount / 2 ? columnCount - level + 1 : level; + while (currentColumn <= levelColumnCount) { + if (currentColumn == level || currentColumn == columnCount - level + 1) { + result.append(star); + } else { + result.append(space); + } + currentColumn++; + } + result.append(System.lineSeparator()); + level++; + currentColumn = 1; + } + result.append(topSide); + System.out.print(result); + } +} diff --git a/src/test/java/ru/job4j/io/Task14Test.java b/src/test/java/ru/job4j/io/Task14Test.java new file mode 100644 index 0000000..dc179b2 --- /dev/null +++ b/src/test/java/ru/job4j/io/Task14Test.java @@ -0,0 +1,20 @@ +package ru.job4j.io; + +import org.junit.Test; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + +public class Task14Test { + + @Test + public void whenDelimiterIsPastedBetweenLettersOfString() { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + System.setOut(new PrintStream(out)); + Task14.main(null); + assertThat(out.toString(), is("H-e-l-l-o-,-f-r-i-e-n-d!")); + } +} \ No newline at end of file diff --git a/src/test/java/ru/job4j/io/Task15Test.java b/src/test/java/ru/job4j/io/Task15Test.java new file mode 100644 index 0000000..348a369 --- /dev/null +++ b/src/test/java/ru/job4j/io/Task15Test.java @@ -0,0 +1,20 @@ +package ru.job4j.io; + +import org.junit.Test; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + +public class Task15Test { + @Test + public void eachSequenceOfSameSymbolsOnSeparateLine() { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + System.setOut(new PrintStream(out)); + Task15.main(null); + String expected = String.format("+++%S!!!!%S??", System.lineSeparator(), System.lineSeparator()); + assertThat(out.toString(), is(expected)); + } +} \ No newline at end of file diff --git a/src/test/java/ru/job4j/io/Task16Test.java b/src/test/java/ru/job4j/io/Task16Test.java new file mode 100644 index 0000000..01183a9 --- /dev/null +++ b/src/test/java/ru/job4j/io/Task16Test.java @@ -0,0 +1,19 @@ +package ru.job4j.io; + +import org.junit.Test; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + +public class Task16Test { + @Test + public void eachSequenceOfSameSymbolsOnOneLine() { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + System.setOut(new PrintStream(out)); + Task16.main(null); + assertThat(out.toString(), is("+++!!!!??")); + } +} \ No newline at end of file diff --git a/src/test/java/ru/job4j/io/Task17Test.java b/src/test/java/ru/job4j/io/Task17Test.java new file mode 100644 index 0000000..47ed189 --- /dev/null +++ b/src/test/java/ru/job4j/io/Task17Test.java @@ -0,0 +1,21 @@ +package ru.job4j.io; + +import org.junit.Test; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + +public class Task17Test { + @Test + public void shouldOutputSqrAndCubeOf6() { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + System.setOut(new PrintStream(out)); + Task17.main(null); + String expected = "6" + System.lineSeparator() + "36" + System.lineSeparator() + + "216"; + assertThat(out.toString(), is(expected)); + } +} \ No newline at end of file diff --git a/src/test/java/ru/job4j/io/Task18Test.java b/src/test/java/ru/job4j/io/Task18Test.java new file mode 100644 index 0000000..1cd260f --- /dev/null +++ b/src/test/java/ru/job4j/io/Task18Test.java @@ -0,0 +1,20 @@ +package ru.job4j.io; + +import org.junit.Test; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + +public class Task18Test { + @Test + public void shouldOutputStringPlusNumber() { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + System.setOut(new PrintStream(out)); + Task18.main(null); + String expected = "Значение x равно 9" + System.lineSeparator() + "Значение x^2 равно 81"; + assertThat(out.toString(), is(expected)); + } +} \ No newline at end of file diff --git a/src/test/java/ru/job4j/io/Task19Test.java b/src/test/java/ru/job4j/io/Task19Test.java new file mode 100644 index 0000000..b45f76c --- /dev/null +++ b/src/test/java/ru/job4j/io/Task19Test.java @@ -0,0 +1,22 @@ +package ru.job4j.io; + +import org.junit.Test; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + +public class Task19Test { + @Test + public void shouldOutputStringWithTwoVariables() { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + System.setOut(new PrintStream(out)); + Task19.main(null); + String expected = "Значение x равно 4; значение y равно 11" + System.lineSeparator() + + "Произведение x и y равно 44" + System.lineSeparator() + + "Сумма x и y равно 15"; + assertThat(out.toString(), is(expected)); + } +} \ No newline at end of file diff --git a/src/test/java/ru/job4j/io/Task20Test.java b/src/test/java/ru/job4j/io/Task20Test.java new file mode 100644 index 0000000..caf32b6 --- /dev/null +++ b/src/test/java/ru/job4j/io/Task20Test.java @@ -0,0 +1,23 @@ +package ru.job4j.io; + +import org.junit.Test; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + +public class Task20Test { + @Test + public void shouldOutputFullNameAndPhoneInFrame() { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + System.setOut(new PrintStream(out)); + Task20.main(null); + String expected = "************************" + System.lineSeparator() + + "* Фамилия Имя Отчество *" + System.lineSeparator() + + "* +7(938) 123-45-67 *" + System.lineSeparator() + + "************************"; + assertThat(out.toString(), is(expected)); + } +} \ No newline at end of file diff --git a/src/test/java/ru/job4j/io/Task21Test.java b/src/test/java/ru/job4j/io/Task21Test.java new file mode 100644 index 0000000..1cd6f2a --- /dev/null +++ b/src/test/java/ru/job4j/io/Task21Test.java @@ -0,0 +1,67 @@ +package ru.job4j.io; + +import org.junit.Test; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + +public class Task21Test { + @Test + public void whenHourglassWidthEquals3() { + ByteArrayInputStream in = new ByteArrayInputStream("5".getBytes()); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + System.setOut(new PrintStream(out)); + System.setIn(in); + Task21.main(null); + String expected = + "*****" + System.lineSeparator() + + " * *" + System.lineSeparator() + + " *" + System.lineSeparator() + + " * *" + System.lineSeparator() + + "*****"; + assertThat(out.toString(), is(expected)); + } + + @Test + public void whenHourglassWidthEquals8() { + ByteArrayInputStream in = new ByteArrayInputStream("8".getBytes()); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + System.setOut(new PrintStream(out)); + System.setIn(in); + Task21.main(null); + String expected = + "********" + System.lineSeparator() + + " * *" + System.lineSeparator() + + " * *" + System.lineSeparator() + + " **" + System.lineSeparator() + + " **" + System.lineSeparator() + + " * *" + System.lineSeparator() + + " * *" + System.lineSeparator() + + "********"; + assertThat(out.toString(), is(expected)); + } + + @Test + public void whenHourglassWidthEquals9() { + ByteArrayInputStream in = new ByteArrayInputStream("9".getBytes()); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + System.setOut(new PrintStream(out)); + System.setIn(in); + Task21.main(null); + String expected = + "*********" + System.lineSeparator() + + " * *" + System.lineSeparator() + + " * *" + System.lineSeparator() + + " * *" + System.lineSeparator() + + " *" + System.lineSeparator() + + " * *" + System.lineSeparator() + + " * *" + System.lineSeparator() + + " * *" + System.lineSeparator() + + "*********"; + assertThat(out.toString(), is(expected)); + } +} \ No newline at end of file