Тема: Рядки та регулярні вирази

1. Написати програму , яка б виконувала обробку
тексту та перевіряла рядок на відповідність регулярному виразу.
2. Передбачити введення тексту та рядків із клавіатури.
З тексту видалити усі символи, окрім пропусків, які не є буквами.
Написати регулярний вираз, який би перевіряв чи є введений рядок датою у
форматі dd/mm/yyyy починаючи з 1600 року та закінчуючи 9999 роком.
- приклад правильного виразу: 29/02/2000, 30/04/2003, 01/01/2003.
- приклад неправильного виразу: 29/02/2001, 30-04-2003, 1/1/1899.

package src;

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {

    public static void main(String[] args) {
        Pattern pattern = Pattern.compile(", ");
        System.out.print("Введіть рядок символів: ");
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        String Str = new String(input);
        System.out.println("Початковий рядок: " + Str);           
        StringBuffer sb = new StringBuffer(new Scanner(System.in).nextLine());
        for (int i = 0; i < sb.length(); i++) {
            if (sb.charAt(i) ==) {
                sb.deleteCharAt(i);
                i--;
            }
        }
        System.out.println(sb.toString());
        
        System.out.println();
        
        String Str1 = new String(input);
        String pattern = "MM/dd/yyyy";
        DateFormat df = new SimpleDateFormat(pattern);
        String strDate = df.format(date);
        System.out.print("Введіть дату: ");
        input = scanner.nextLine();
        String[] arrDate = strDate.split("/");

        int year = Integer.parseInt(arrDate[0]);
        int month = Integer.parseInt(arrDate[1]);
        int day = Integer.parseInt(arrDate[2]);

        if (year > 10000 && year < 1600) {
            System.out.println("Дата неправильна");
        }

    }
}

2

Re: Рядки та регулярні вирази

Не розумію, як реалізувати далі

3

Re: Рядки та регулярні вирази

sahanvalentun написав:

З тексту видалити усі символи, окрім пропусків, які не є буквами.

В гуглі знайшов

public class RemoveSpecialCharacterExample1
{
public static void main(String args[])
{
String str= "This#string%contains^special*characters&.";
str = str.replaceAll("[^a-zA-Z0-9]", " ");
System.out.println(str);
}
}

Спробував на онлайн-компіляторі, не працює
https://ideone.com/0i5rmD
Це трохи не те (тре перевіряти навпаки, на наявність "QWERTYUIOASDFGHJJKZXCVBNM qwertyuiopasdfghjklzxcvbnm")

4

Re: Рядки та регулярні вирази

А з датою як правильніше реалізувати ? Мені здається вийшло шось не те ,