skrypt usuwający/zamieniający znaki

0

Witam
Nie mam zbyt wielkich umiejętności programistycznych - kiedyś coś tam pisałem w C, nawet magisterkę zrobiłem :)
Teraz mam napisać skrypt i zwracam się o radę jak najlepiej zabrać się do takiego problemu:
Skrypt dostaje jakiegoś stringa i go przetwarza w następujący sposób:

  • ( ) / \ | + { } & , ; : < > #[] - wszystkie takie znaki zostają zamienione na biały znak
  • pozostałe znaki zostają usunięte
  • wszystkie małe litery zostają zamienione na duże
  • kilka białych znaków pod rząd zostaje zamienionych na jeden

Pytanie na razie jest czysto koncepcyjne ? Jak się do tego zabrać ?
Jakie biblioteki się przydadzą ? Jak najłatwiej analizować te znaki - czy jakieś wyrażenia regularne czy używając unicode ?

z góry dzięki za rady

0

Wszystko można łatwo wykonać na regexach. Przyda ci się String.replaceAll(String, String) (czyli właściwie Pattern.compile(String).matcher(this).replaceAll(String)) do zamiany tych znaków i powielonych białych znaków. Potem to samo, zamieniasz wszystkie znaki niebędące literami i białymi znakami na "". Na koniec String.toUpperCase().
Coś podobnego do tego:

string.replaceAll("[()/\\\\|+{}&,;:<>#\\[\\]]+", " ").replaceAll("\\p{Space}+", " ").replaceAll("[^\\p{Alnum}\\p{Space}]", "").toUpperCase();
0

Najbardziej czytelnie można zrobić to w Javie, trochę mniej czytelnie w bashu lub windows, nieczytelnie za pomocą wyrażeń regularnych (wbudowane np. w perla i javę). Pozostaje sprawa tego czy takich zadań ma być więcej czy jest ono jednorazowe, czy ma to być bardzo wydajne (np. przetworzenie kilkuset tysięcy plików) oraz czy używać armaty na muchę? :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1