mirror of
				https://github.com/ASDjonok/OOP_IO-2x_2023.git
				synced 2025-11-04 08:39:24 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
import java.util.Scanner;
 | 
						|
 | 
						|
public class Lab5 {
 | 
						|
    public static void main(String[] args) {
 | 
						|
 | 
						|
        int C17 = 2430 % 17;
 | 
						|
        System.out.println("\n---------------------------------------------------------------------------------------------------------------------");
 | 
						|
        System.out.println("  C17 = " + C17 + ", So, the task is:  delete all previous occurrences of the last letter of each word of the specified text");
 | 
						|
        System.out.println("---------------------------------------------------------------------------------------------------------------------");
 | 
						|
 | 
						|
        Scanner scanner = new Scanner(System.in);
 | 
						|
        String input = null;
 | 
						|
        while (input == null || input.isEmpty()) {
 | 
						|
            System.out.print("\nEnter a string: ");
 | 
						|
            input = scanner.nextLine();
 | 
						|
        }
 | 
						|
        try {
 | 
						|
            StringBuilder sb = new StringBuilder(input);
 | 
						|
            String[] words = sb.toString().split("\\s+");
 | 
						|
            for (int i = 0; i < words.length; i++) {
 | 
						|
                String word = words[i];
 | 
						|
                char lastChar = word.charAt(word.length() - 1);
 | 
						|
                if (!Character.isLetterOrDigit(lastChar)) {
 | 
						|
                    // Last character is a punctuation mark
 | 
						|
                    int lastLetterIndex = -1;
 | 
						|
                    for (int j = word.length() - 2; j >= 0; j--) {
 | 
						|
                        if (Character.isLetter(word.charAt(j))) {
 | 
						|
                            lastLetterIndex = j;
 | 
						|
                            break;
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    if (lastLetterIndex != -1) {
 | 
						|
                        char lastLetter = word.charAt(lastLetterIndex);
 | 
						|
                        String newWord = "";
 | 
						|
                        for (int j = 0; j < word.length() - 1; j++) {
 | 
						|
                            if (!Character.isLetterOrDigit(word.charAt(j)) || word.charAt(j) != lastLetter) {
 | 
						|
                                newWord += word.charAt(j);
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                        newWord += lastChar;
 | 
						|
                        words[i] = newWord;
 | 
						|
                    }
 | 
						|
                } else {
 | 
						|
                    // Last character is a letter or a digit
 | 
						|
                    char lastLetter = lastChar;
 | 
						|
                    String newWord = "";
 | 
						|
                    for (int j = 0; j < word.length() - 1; j++) {
 | 
						|
                        if (!Character.isLetterOrDigit(word.charAt(j)) || word.charAt(j) != lastLetter) {
 | 
						|
                            newWord += word.charAt(j);
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    newWord += lastLetter;
 | 
						|
                    words[i] = newWord;
 | 
						|
                }
 | 
						|
            }
 | 
						|
            System.out.print("\nFinal string: ");
 | 
						|
            System.out.println(String.join(" ", words));
 | 
						|
        } catch (Exception e) {
 | 
						|
            System.out.println("An error occurred: " + e.getMessage());
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 |