From 6f7b3721b3cc71ed17b5f3d23223c07ca876231d Mon Sep 17 00:00:00 2001 From: Aleksey Kalenchukov Date: Fri, 5 Aug 2022 15:24:53 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D1=8B=20toString(?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.MD | 16 +++++++++++ TODO.MD | 1 - pom.xml | 2 +- .../alphabet/AbstractAlphabet.java | 28 +++++++++++++++++++ .../kalenchukov/alphabet/Alphabetical.java | 8 ++++++ .../BelarusianAlphabetLowerCaseTest.java | 22 +++++++++++++++ .../alphabet/BelarusianAlphabetTest.java | 24 ++++++++++++++++ .../BelarusianAlphabetUpperCaseTest.java | 22 +++++++++++++++ .../alphabet/CyrillicAlphabetTest.java | 22 +++++++++++++++ .../EnglishAlphabetLowerCaseTest.java | 22 +++++++++++++++ .../alphabet/EnglishAlphabetTest.java | 22 +++++++++++++++ .../EnglishAlphabetUpperCaseTest.java | 22 +++++++++++++++ .../alphabet/GreekAlphabetLowerCaseTest.java | 22 +++++++++++++++ .../alphabet/GreekAlphabetTest.java | 22 +++++++++++++++ .../alphabet/GreekAlphabetUpperCaseTest.java | 22 +++++++++++++++ .../RussianAlphabetLowerCaseTest.java | 22 +++++++++++++++ .../alphabet/RussianAlphabetTest.java | 24 ++++++++++++++++ .../RussianAlphabetUpperCaseTest.java | 22 +++++++++++++++ 18 files changed, 343 insertions(+), 2 deletions(-) diff --git a/README.MD b/README.MD index 6b0907a..0e7bc4c 100644 --- a/README.MD +++ b/README.MD @@ -261,6 +261,22 @@ alphabet.getPosition('ё'); // Результат выполнения: 7 ``` +#### Получение букв алфавита в виде строки с разделителем + +```java +Alphabetical alphabet = new RussianAlphabet(); +alphabet.toString(","); +// Результат выполнения: А,а,Б,б,В,в,Г,г,Д,д,Е,е,Ё,ё,Ж,ж,З,з,И,и,Й,й,К,к,Л,л,М,м,Н,н,О,о,П,п,Р,р,С,с,Т,т,У,у,Ф,ф,Х,х,Ц,ц,Ч,ч,Ш,ш,Щ,щ,Ъ,ъ,Ы,ы,Ь,ь,Э,э,Ю,ю,Я,я +``` + +#### Получение букв алфавита в виде строки + +```java +Alphabetical alphabet = new RussianAlphabet(); +alphabet.toString(); +// Результат выполнения: АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя +``` + ## Установка Для установки этого проекта, введите в терминале: diff --git a/TODO.MD b/TODO.MD index fe86e64..2ed5d92 100644 --- a/TODO.MD +++ b/TODO.MD @@ -7,6 +7,5 @@ * [?] Получение клавиатурного порядка букв * Латинский алфавит добавить * [?] Перечисления для получения алфавитов, алфавитов прописных букв, алфавитов строчных букв -* [+] Метод join() объединения букв в строку с разделителем и без * [+] Метод random() для получения случайных букв указанного количества * diff --git a/pom.xml b/pom.xml index 75eaa60..76b027e 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ dev.kalenchukov alphabet - 2.0.0 + 2.1.0 Alphabet Алфавиты языков мира diff --git a/src/main/java/dev/kalenchukov/alphabet/AbstractAlphabet.java b/src/main/java/dev/kalenchukov/alphabet/AbstractAlphabet.java index 3500c25..e44453a 100644 --- a/src/main/java/dev/kalenchukov/alphabet/AbstractAlphabet.java +++ b/src/main/java/dev/kalenchukov/alphabet/AbstractAlphabet.java @@ -158,4 +158,32 @@ public Integer getPosition(@NotNull final Character letter) return Collections.unmodifiableList(letters); } + + /** + * @see Alphabetical#toString(String) + */ + @Override + @NotNull + public String toString(@NotNull final String separator) + { + StringBuilder string = new StringBuilder(); + + for (int index = 0; index < this.letters.size(); index++) + { + string.append(this.letters.get(index)); + + if (index != this.letters.size() - 1) { + string.append(separator); + } + } + + return string.toString(); + } + + @Override + @NotNull + public String toString() + { + return this.toString(""); + } } diff --git a/src/main/java/dev/kalenchukov/alphabet/Alphabetical.java b/src/main/java/dev/kalenchukov/alphabet/Alphabetical.java index ae383d3..88b1aa7 100644 --- a/src/main/java/dev/kalenchukov/alphabet/Alphabetical.java +++ b/src/main/java/dev/kalenchukov/alphabet/Alphabetical.java @@ -82,4 +82,12 @@ public interface Alphabetical * @return {@code True} если буква принадлежит алфавиту, иначе {@code false}. */ boolean hasLetter(@NotNull final Character letter); + + /** + * Преобразовывает буквы алфавита в строку. + * + * @param separator Разделитель букв. + * @return Строку из букв алфавита. + */ + String toString(@NotNull final String separator); } diff --git a/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetLowerCaseTest.java b/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetLowerCaseTest.java index 3929c70..d63f552 100644 --- a/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetLowerCaseTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetLowerCaseTest.java @@ -257,4 +257,26 @@ public void testHasLetterBad() { assertFalse(ALPHABET.hasLetter('Ў')); } + + /** + * Проверяет преобразование алфавита в строку с использованием разделителя. + */ + @Test + public void testToStringSeparator() + { + String string = "а,б,в,г,д,е,ё,ж,з,і,й,к,л,м,н,о,п,р,с,т,у,ў,ф,х,ц,ч,ш,ы,ь,э,ю,я"; + + assertEquals(string, ALPHABET.toString(",")); + } + + /** + * Проверяет преобразование алфавита в строку. + */ + @Test + public void testToString() + { + String string = "абвгдеёжзійклмнопрстуўфхцчшыьэюя"; + + assertEquals(string, ALPHABET.toString()); + } } \ No newline at end of file diff --git a/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetTest.java b/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetTest.java index e15aec1..b647881 100644 --- a/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetTest.java @@ -368,4 +368,28 @@ public void testHasLetterBad() { assertFalse(ALPHABET.hasLetter('W')); } + + /** + * Проверяет преобразование алфавита в строку с использованием разделителя. + */ + @Test + public void testToStringSeparator() + { + String string = "А,а,Б,б,В,в,Г,г,Д,д,Е,е,Ё,ё,Ж,ж,З,з,І,і,Й,й," + + "К,к,Л,л,М,м,Н,н,О,о,П,п,Р,р,С,с,Т,т,У,у,Ў,ў,Ф,ф,Х,х," + + "Ц,ц,Ч,ч,Ш,ш,Ы,ы,Ь,ь,Э,э,Ю,ю,Я,я"; + + assertEquals(string, ALPHABET.toString(",")); + } + + /** + * Проверяет преобразование алфавита в строку. + */ + @Test + public void testToString() + { + String string = "АаБбВвГгДдЕеЁёЖжЗзІіЙйКкЛлМмНнОоПпРрСсТтУуЎўФфХхЦцЧчШшЫыЬьЭэЮюЯя"; + + assertEquals(string, ALPHABET.toString()); + } } \ No newline at end of file diff --git a/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetUpperCaseTest.java b/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetUpperCaseTest.java index 4f62492..5a41328 100644 --- a/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetUpperCaseTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetUpperCaseTest.java @@ -257,4 +257,26 @@ public void testHasLetterBad() { assertFalse(ALPHABET.hasLetter('ў')); } + + /** + * Проверяет преобразование алфавита в строку с использованием разделителя. + */ + @Test + public void testToStringSeparator() + { + String string = "А,Б,В,Г,Д,Е,Ё,Ж,З,І,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ў,Ф,Х,Ц,Ч,Ш,Ы,Ь,Э,Ю,Я"; + + assertEquals(string, ALPHABET.toString(",")); + } + + /** + * Проверяет преобразование алфавита в строку. + */ + @Test + public void testToString() + { + String string = "АБВГДЕЁЖЗІЙКЛМНОПРСТУЎФХЦЧШЫЬЭЮЯ"; + + assertEquals(string, ALPHABET.toString()); + } } \ No newline at end of file diff --git a/src/test/java/dev/kalenchukov/alphabet/CyrillicAlphabetTest.java b/src/test/java/dev/kalenchukov/alphabet/CyrillicAlphabetTest.java index 37b3b36..a84d816 100644 --- a/src/test/java/dev/kalenchukov/alphabet/CyrillicAlphabetTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/CyrillicAlphabetTest.java @@ -288,4 +288,26 @@ public void testHasLetterBad() { assertFalse(ALPHABET.hasLetter('Q')); } + + /** + * Проверяет преобразование алфавита в строку с использованием разделителя. + */ + @Test + public void testToStringSeparator() + { + String string = "А,Б,В,Г,Д,Е,Ж,Ѕ,З,И,І,К,Л,М,Н,О,П,Р,С,Т,Ꙋ,Ф,Х,Ѡ,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Ѣ,Ю,Ꙗ,Ѥ,Ѧ,Ѫ,Ѩ,Ѭ,Ѯ,Ѱ,Ѳ,Ѵ"; + + assertEquals(string, ALPHABET.toString(",")); + } + + /** + * Проверяет преобразование алфавита в строку. + */ + @Test + public void testToString() + { + String string = "АБВГДЕЖЅЗИІКЛМНОПРСТꙊФХѠЦЧШЩЪЫЬѢЮꙖѤѦѪѨѬѮѰѲѴ"; + + assertEquals(string, ALPHABET.toString()); + } } \ No newline at end of file diff --git a/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetLowerCaseTest.java b/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetLowerCaseTest.java index 5071c9d..46d008f 100644 --- a/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetLowerCaseTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetLowerCaseTest.java @@ -236,4 +236,26 @@ public void testHasLetterBad() { assertFalse(ALPHABET.hasLetter('Z')); } + + /** + * Проверяет преобразование алфавита в строку с использованием разделителя. + */ + @Test + public void testToStringSeparator() + { + String string = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"; + + assertEquals(string, ALPHABET.toString(",")); + } + + /** + * Проверяет преобразование алфавита в строку. + */ + @Test + public void testToString() + { + String string = "abcdefghijklmnopqrstuvwxyz"; + + assertEquals(string, ALPHABET.toString()); + } } \ No newline at end of file diff --git a/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetTest.java b/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetTest.java index e6ae6ba..f4dd0a9 100644 --- a/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetTest.java @@ -333,4 +333,26 @@ public void testHasLetterBad() { assertFalse(ALPHABET.hasLetter('Ы')); } + + /** + * Проверяет преобразование алфавита в строку с использованием разделителя. + */ + @Test + public void testToStringSeparator() + { + String string = "A,a,B,b,C,c,D,d,E,e,F,f,G,g,H,h,I,i,J,j,K,k,L,l,M,m,N,n,O,o,P,p,Q,q,R,r,S,s,T,t,U,u,V,v,W,w,X,x,Y,y,Z,z"; + + assertEquals(string, ALPHABET.toString(",")); + } + + /** + * Проверяет преобразование алфавита в строку. + */ + @Test + public void testToString() + { + String string = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"; + + assertEquals(string, ALPHABET.toString()); + } } \ No newline at end of file diff --git a/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetUpperCaseTest.java b/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetUpperCaseTest.java index 68eebdb..dac27c9 100644 --- a/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetUpperCaseTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetUpperCaseTest.java @@ -236,4 +236,26 @@ public void testHasLetterBad() { assertFalse(ALPHABET.hasLetter('x')); } + + /** + * Проверяет преобразование алфавита в строку с использованием разделителя. + */ + @Test + public void testToStringSeparator() + { + String string = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"; + + assertEquals(string, ALPHABET.toString(",")); + } + + /** + * Проверяет преобразование алфавита в строку. + */ + @Test + public void testToString() + { + String string = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + + assertEquals(string, ALPHABET.toString()); + } } \ No newline at end of file diff --git a/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetLowerCaseTest.java b/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetLowerCaseTest.java index f54e1bf..21b6e29 100644 --- a/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetLowerCaseTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetLowerCaseTest.java @@ -233,4 +233,26 @@ public void testHasLetterBad() { assertFalse(ALPHABET.hasLetter('Β')); } + + /** + * Проверяет преобразование алфавита в строку с использованием разделителя. + */ + @Test + public void testToStringSeparator() + { + String string = "α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,ς,τ,υ,φ,χ,ψ,ω"; + + assertEquals(string, ALPHABET.toString(",")); + } + + /** + * Проверяет преобразование алфавита в строку. + */ + @Test + public void testToString() + { + String string = "αβγδεζηθικλμνξοπρσςτυφχψω"; + + assertEquals(string, ALPHABET.toString()); + } } \ No newline at end of file diff --git a/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetTest.java b/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetTest.java index f2d8f7a..4f03471 100644 --- a/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetTest.java @@ -321,4 +321,26 @@ public void testHasLetterBad() { assertFalse(ALPHABET.hasLetter('ы')); } + + /** + * Проверяет преобразование алфавита в строку с использованием разделителя. + */ + @Test + public void testToStringSeparator() + { + String string = "Α,α,Β,β,Γ,γ,Δ,δ,Ε,ε,Ζ,ζ,Η,η,Θ,θ,Ι,ι,Κ,κ,Λ,λ,Μ,μ,Ν,ν,Ξ,ξ,Ο,ο,Π,π,Ρ,ρ,Σ,σ,ς,Τ,τ,Υ,υ,Φ,φ,Χ,χ,Ψ,ψ,Ω,ω"; + + assertEquals(string, ALPHABET.toString(",")); + } + + /** + * Проверяет преобразование алфавита в строку. + */ + @Test + public void testToString() + { + String string = "ΑαΒβΓγΔδΕεΖζΗηΘθΙιΚκΛλΜμΝνΞξΟοΠπΡρΣσςΤτΥυΦφΧχΨψΩω"; + + assertEquals(string, ALPHABET.toString()); + } } \ No newline at end of file diff --git a/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetUpperCaseTest.java b/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetUpperCaseTest.java index 6a7ef6a..22640ac 100644 --- a/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetUpperCaseTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetUpperCaseTest.java @@ -255,4 +255,26 @@ public void testHasLetterBad() { assertFalse(ALPHABET.hasLetter('β')); } + + /** + * Проверяет преобразование алфавита в строку с использованием разделителя. + */ + @Test + public void testToStringSeparator() + { + String string = "Α,Β,Γ,Δ,Ε,Ζ,Η,Θ,Ι,Κ,Λ,Μ,Ν,Ξ,Ο,Π,Ρ,Σ,Τ,Υ,Φ,Χ,Ψ,Ω"; + + assertEquals(string, ALPHABET.toString(",")); + } + + /** + * Проверяет преобразование алфавита в строку. + */ + @Test + public void testToString() + { + String string = "ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ"; + + assertEquals(string, ALPHABET.toString()); + } } \ No newline at end of file diff --git a/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetLowerCaseTest.java b/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetLowerCaseTest.java index a8628a0..28e48c2 100644 --- a/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetLowerCaseTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetLowerCaseTest.java @@ -294,4 +294,26 @@ public void testHasLetterBad() { assertFalse(ALPHABET.hasLetter('Э')); } + + /** + * Проверяет преобразование алфавита в строку с использованием разделителя. + */ + @Test + public void testToStringSeparator() + { + String string = "а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я"; + + assertEquals(string, ALPHABET.toString(",")); + } + + /** + * Проверяет преобразование алфавита в строку. + */ + @Test + public void testToString() + { + String string = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"; + + assertEquals(string, ALPHABET.toString()); + } } \ No newline at end of file diff --git a/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetTest.java b/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetTest.java index 88985c0..0b0b463 100644 --- a/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetTest.java @@ -446,4 +446,28 @@ public void testHasLetterBad() { assertFalse(ALPHABET.hasLetter('W')); } + + /** + * Проверяет преобразование алфавита в строку с использованием разделителя. + */ + @Test + public void testToStringSeparator() + { + String string = "А,а,Б,б,В,в,Г,г,Д,д,Е,е,Ё,ё,Ж,ж,З,з,И,и," + + "Й,й,К,к,Л,л,М,м,Н,н,О,о,П,п,Р,р,С,с,Т,т,У,у,Ф,ф,Х,х," + + "Ц,ц,Ч,ч,Ш,ш,Щ,щ,Ъ,ъ,Ы,ы,Ь,ь,Э,э,Ю,ю,Я,я"; + + assertEquals(string, ALPHABET.toString(",")); + } + + /** + * Проверяет преобразование алфавита в строку. + */ + @Test + public void testToString() + { + String string = "АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя"; + + assertEquals(string, ALPHABET.toString()); + } } \ No newline at end of file diff --git a/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetUpperCaseTest.java b/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetUpperCaseTest.java index cf305a9..46008cb 100644 --- a/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetUpperCaseTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetUpperCaseTest.java @@ -260,4 +260,26 @@ public void testHasLetterBad() { assertFalse(ALPHABET.hasLetter('ж')); } + + /** + * Проверяет преобразование алфавита в строку с использованием разделителя. + */ + @Test + public void testToStringSeparator() + { + String string = "А,Б,В,Г,Д,Е,Ё,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Э,Ю,Я"; + + assertEquals(string, ALPHABET.toString(",")); + } + + /** + * Проверяет преобразование алфавита в строку. + */ + @Test + public void testToString() + { + String string = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"; + + assertEquals(string, ALPHABET.toString()); + } } \ No newline at end of file