Menu
Coddy logo textTech

Podstawy wyrażeń regularnych

Część sekcji Logika i przepływ sterowania ścieżki Java w Coddy. Lekcja 46 z 59.

Wyrażenia regularne (regex) to wzorce używane do wyszukiwania i walidowania ciągów znaków. W Javie używamy metody matches(), aby sprawdzić, czy ciąg znaków pasuje do wzorca.

Sprawdź, czy ciąg zawiera tylko cyfry:

String text = "12345";
boolean isMatch = text.matches("[0-9]+");

Po wykonaniu powyższego kodu isMatch zawiera:

true

Sprawdź, czy ciąg znaków zawiera wyłącznie litery:

String text = "Hello";
boolean isMatch = text.matches("[a-zA-Z]+");

Po wykonaniu powyższego kodu isMatch zawiera:

true

challenge icon

Wyzwanie

Łatwy

Utwórz metodę o nazwie validateInput, która przyjmuje dwa argumenty:

  1. String (text) do walidacji
  2. String (type) określający typ walidacji

Metoda powinna walidować tekst zgodnie z następującymi typami:

  • "number": może zawierać tylko cyfry (0-9)
  • "word": może zawierać tylko litery (a-z lub A-Z)
  • "email": musi zawierać @ i co najmniej jeden znak przed nim
  • "phone": musi zawierać dokładnie 10 cyfr

Zwracane komunikaty powinny być następujące:

  • Jeśli text ma wartość null: zwróć "Invalid input"
  • Jeśli type jest nieprawidłowy: zwróć "Invalid type"
  • Jeśli walidacja się powiedzie: zwróć "Valid"
  • Jeśli walidacja się nie powiedzie: zwróć "Invalid"

Spróbuj swoich sił

import java.util.Scanner;

public class Main {
    public static String validateInput(String text, String type) {
        // Napisz tutaj swój kod
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String text = scanner.nextLine();
        String type = scanner.nextLine();
        
        if (text.equals("null")) text = null;
        System.out.println(validateInput(text, type));
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Java online