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()); } } }