Pattern und Matcher substring zu String möglich?

zenpaticx

Mitglied
Hallo!

folgendes Problem:

Ich habe eine .txt-Datei. Diese möchte ich auslesen und die Sprache erkennen, in der der Text geschrieben wird - sollte kein großes Hexenwerk sein, weil ich einfach schaue wie oft die Buchstaben x prozentual vorkommen und dann anhand einer Tabelle schaue, welche Sprache es sein kann.
Allerdings kann in der Textdatei ja jeder Text stehen, der anzeigbar ist. Außerdem möchte ich mich auf "einfache Sprachen" beschränken (englisch, deutsch, französisch, et cetera), da diese relativ "einfach" sind.

Ich lese nun die Datei mit dem BufferedReader aus und schreibe sie in ein String - das klappt auch, habe den Quelltext jetzt nur nicht hier reingepostet, da es ja klappt.
Unten steht ein Code, mit dem man filtert und das nicht mit .replace, weil das ja erst im Nachhinein passiert. Nur a-z, A-Z, öäü und ÖÄÜ werden zugelassen.

Wie bekomme ich jetzt die Variable s (der String, der dann in ein Substring gebildet wird) in eine extra-variable?
Ich bekomme das nicht wirklich zum laufen.

Für Anregungen/die Lösung besten Dank!

Grüße

Code:
Java:
  public static void main(String[] args) {
     // TODO Auto-generated method stub
     String s = "Das9 ist 0e8i6n un2n3öt3ig l123anger string..";
     Pattern p = Pattern.compile("[a-zA-ZöüäÖÄÜ]");
  Matcher m = p.matcher(s);

  String sBaukasten = new String("");
   
  while ( m.find() ) {
  System.out.print(s.substring(m.start(), m.end()));
  }
   
  System.out.println("Das ist der Baukasten: " + sBaukasten);
   }
 
ich versteh so ganz das Problem nicht? Willst du das vom Matcher gefundene in einer anderen Variable ablegen?


Ganz allgemein, du willst am Ende nur Buchstaben zählen, oder? Warum benutzt du da überhaupt Pattern und Matcher? Das ganze geht wesentlich leichter (und vermutlich performanter) ohne das...
 
Hallo @mrBrown !
Ich schildere mein Problem mal so:
Der String momentan ist folgender:
Java:
Das9 ist 0e8i6n un2n3öt3ig l123anger string..

Die Ausgabe ist folgende:
Java:
Das ist ein unnötig langer string
Es werden alle Klein- und Großbuchstaben und äüö (auch in groß) zugelassen. Das ist das Filtern was ich möchte.

In der While-Schleife wird ja aus der Variable s, die den ungefilterten Text enthält, ein substring.
Den finalen String, also die Ausgabe "Das ist ein unnötig langer string" möchte ich in einer String-Variablen haben. Und das weiß ich nicht wie es geht.
 

Zurück
Oben