Create FifthLab.java
This commit is contained in:
		
							parent
							
								
									d7edabbf00
								
							
						
					
					
						commit
						0ec39254b8
					
				
							
								
								
									
										139
									
								
								src/_12_Закревський_Данило_Сергійович/lab5/FifthLab.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										139
									
								
								src/_12_Закревський_Данило_Сергійович/lab5/FifthLab.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,139 @@
 | 
			
		||||
import java.util.Scanner;
 | 
			
		||||
 | 
			
		||||
public class FifthLab {
 | 
			
		||||
 | 
			
		||||
    public static void main(String[] args) {
 | 
			
		||||
        Scanner scn = new Scanner(System.in);
 | 
			
		||||
        System.out.println("Enter a string: ");
 | 
			
		||||
        String text = scn.nextLine();
 | 
			
		||||
        StringBuilder textBuilder = new StringBuilder(text);
 | 
			
		||||
        StringBuilder result = new StringBuilder();
 | 
			
		||||
 | 
			
		||||
        System.out.print("Enter a string to replace the words: ");
 | 
			
		||||
        String replace = scn.nextLine();
 | 
			
		||||
        System.out.print("Enter the length of the words to replace: ");
 | 
			
		||||
        int length = scn.nextInt();
 | 
			
		||||
        
 | 
			
		||||
        System.out.println("\nText before changes: ");
 | 
			
		||||
        System.out.println(textBuilder);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        String[] mySentence = textBuilder.toString().split("(?<=[!.?])\\s?");
 | 
			
		||||
        for(String s: mySentence) {
 | 
			
		||||
            StringBuilder sb = new StringBuilder(s);
 | 
			
		||||
            Sentence sentence = new Sentence(sb, length, replace);
 | 
			
		||||
            result.append(sentence.wordsSplit());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        System.out.println("\nText after changes: ");
 | 
			
		||||
        System.out.println(result);
 | 
			
		||||
        scn.close();
 | 
			
		||||
    }  
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Sentence {
 | 
			
		||||
    
 | 
			
		||||
    private final StringBuilder sentence;
 | 
			
		||||
    private final int length;
 | 
			
		||||
    private final String replace;
 | 
			
		||||
 | 
			
		||||
    public Sentence(StringBuilder sentence, int length, String replace) {
 | 
			
		||||
        this.sentence = sentence;
 | 
			
		||||
        this.length = length;
 | 
			
		||||
        this.replace = replace;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public StringBuilder wordsSplit() {
 | 
			
		||||
        StringBuilder ReturnSentence = new StringBuilder();
 | 
			
		||||
        String text = sentence.toString();
 | 
			
		||||
        String[] words = text.split(" ");
 | 
			
		||||
        for(String s: words) {
 | 
			
		||||
            StringBuilder sb = new StringBuilder(s);
 | 
			
		||||
            Word word = new Word(sb, length, replace);
 | 
			
		||||
            ReturnSentence.append(word.lettersSplit()).append(" ");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return ReturnSentence;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Word {
 | 
			
		||||
 | 
			
		||||
    private final StringBuilder word;
 | 
			
		||||
    private final int length;
 | 
			
		||||
    private final String replace;
 | 
			
		||||
 | 
			
		||||
    public Word(StringBuilder word, int length, String replace) {
 | 
			
		||||
        this.word = word;
 | 
			
		||||
        this.length = length;
 | 
			
		||||
        this.replace = replace;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public StringBuilder lettersSplit() {
 | 
			
		||||
        StringBuilder ReturnWord = new StringBuilder();
 | 
			
		||||
        String wordstr = word.toString();
 | 
			
		||||
        int len = wordstr.length();
 | 
			
		||||
        String[] letters = wordstr.split("");
 | 
			
		||||
        String[] ReplaceLetters = replace.split("");
 | 
			
		||||
        char last = wordstr.charAt(word.length() - 1);
 | 
			
		||||
        if(last == '!' || last == '?' || last == '.') {
 | 
			
		||||
            if(wordstr.charAt(word.length() - 2) == '.') {
 | 
			
		||||
                len = wordstr.length() - 3;
 | 
			
		||||
            } else {
 | 
			
		||||
                len = wordstr.length() - 1;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if(len == length) {
 | 
			
		||||
            for(String chr: ReplaceLetters) {
 | 
			
		||||
                StringBuilder ltr = new StringBuilder(chr);
 | 
			
		||||
                Letter letter = new Letter(ltr);
 | 
			
		||||
                ReturnWord.append(letter.getLetter());
 | 
			
		||||
            }
 | 
			
		||||
            if(wordstr.length() - len == 1) {
 | 
			
		||||
                ReturnWord.append(wordstr.charAt(wordstr.length() - 1));
 | 
			
		||||
            } else if(wordstr.length() - len == 3) {
 | 
			
		||||
                ReturnWord.append("...");
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            for(String chr: letters) {
 | 
			
		||||
                StringBuilder ltr = new StringBuilder(chr);
 | 
			
		||||
                if(chr.equals("!") || chr.equals("?") || chr.equals(".") || chr.equals(",") || chr.equals(":") || chr.equals(";")) {
 | 
			
		||||
                    Punctuation punctuation = new Punctuation(ltr);
 | 
			
		||||
                    ReturnWord.append(punctuation.getPunctuation());
 | 
			
		||||
                } else {
 | 
			
		||||
                    Letter letter = new Letter(ltr);
 | 
			
		||||
                    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