diff --git a/Lab5.java b/Lab5.java new file mode 100644 index 0000000..1bacee4 --- /dev/null +++ b/Lab5.java @@ -0,0 +1,105 @@ +public class Lab5 { + public static void main(String[] args) { + StringBuilder txt = new StringBuilder("соціальна мережа, яка є мережею мікроблогів. Дає змогу користувачам надсилати короткі текстові повідомлення (до 2802 символів, до 2017 року — до 140 символів), використовуючи SMS,"); + System.out.println(txt); + Text text = new Text(txt); + StringBuilder result = text.splitText(); + System.out.println(result); + } +} + +class Text { + private final StringBuilder textString; + public Text(StringBuilder textString){ + this.textString = textString; + } + + public StringBuilder splitText() { + StringBuilder result = new StringBuilder(); + String[] sentenceStrings = textString.toString().split("(?<=[?.!])\\s?"); + for (String s : sentenceStrings) { + StringBuilder sb = new StringBuilder(s); + Sentence sentence = new Sentence(sb); + result.append(sentence.splitSentence()); + } + return result; + } + +} + +class Sentence { + private final StringBuilder sentence; + + public Sentence(StringBuilder sentence) { + this.sentence = sentence; + + } + + public StringBuilder splitSentence() { + StringBuilder returnSentence = new StringBuilder(); + String text = sentence.toString(); + String[] words = text.split(" "); + for (String w : words) { + StringBuilder wb = new StringBuilder(w); + Word word = new Word(wb); + returnSentence.append(word.splitWord()).append(" "); + } + return returnSentence; + + } +} + +class Word { + private final StringBuilder word; + + public Word(StringBuilder word) { + this.word = word; + } + + public StringBuilder splitWord() { + StringBuilder returnWord = new StringBuilder(); + String wordstring = word.toString(); + String[] letters = wordstring.split(""); + String firstLetter = wordstring.substring(0, 1); + returnWord.append(firstLetter); + for (String l: letters){ + StringBuilder lb = new StringBuilder(l); + Letter letter = new Letter(lb); + if (firstLetter.equals(letter.getLetter().toString())){ + returnWord.append(""); + }else{ + if(l.equals("!") || l.equals("?") || l.equals(".") || l.equals(",") || l.equals(":") || l.equals(";")){ + Punctuation punctuation = new Punctuation(lb); + returnWord.append(punctuation.getPunctuation()); + }else{ + returnWord.append(letter.getLetter()); + } + } + } + return returnWord; + } +} + +class Letter { + private final StringBuilder letter; + + public Letter(StringBuilder letter) { + this.letter = letter; + } + + public StringBuilder getLetter() { + return letter; + } +} + +class Punctuation { + private final StringBuilder punctuation; + + public Punctuation(StringBuilder punctuation) { + this.punctuation = punctuation; + } + + public StringBuilder getPunctuation() { + return punctuation; + } +} \ No newline at end of file