mirror of
				https://github.com/ASDjonok/OOP_IO-2x_2023.git
				synced 2025-11-04 00:29:24 +02:00 
			
		
		
		
	Add files via upload
This commit is contained in:
		
							parent
							
								
									65b34dffdf
								
							
						
					
					
						commit
						a5b76b264f
					
				
							
								
								
									
										105
									
								
								Lab5.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								Lab5.java
									
									
									
									
									
										Normal file
									
								
							@ -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;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user