Διαίρεση συμβολοσειρών με κανονική έκφραση

Όταν τα τμήματα μιας συμβολοσειράς χωρίζονται από ίδια στοιχεία διαχωρισμού (π.χ. :, κενό, tab) τότε μπορούμε να τα διαχωρίσουμε με τη μέθοδο του αντικειμένου Pattern.

import java.io.*;
import java.util.regex.*;

public class SplitWords {
    public static void main(String[] args) {
        if (args.length != 1) {
            System.err.println("Usage: SplitWords file");
            System.exit(1);
        }

        // Split on non-word characters
        Pattern splitPattern = Pattern.compile("[^a-zA-Z]+");

        try (var in = new BufferedReader(new InputStreamReader(
                        new FileInputStream(args[0])))) {
            String line;
            while ((line = in.readLine()) != null) {
                String[] words = splitPattern.split(line);
                for (String word : words) {
                    System.out.println(word);
                }
            }
        } catch (FileNotFoundException e) {
            System.err.println("Unable to open file " + args[0] + ": " + e.getMessage());
            System.exit(2);
        } catch (IOException e) {
            System.err.println("Error reading line: " + e.getMessage());
            System.exit(3);
        }
    }
}