Rein kosmetisches Problem: Die niederländ. Sender haben die Genreangaben in reiner Großschreibung. Ich würde es ganz gern umwandeln, sodass nur der 1. Buchstabe groß ist. Manchmal ist hinter einem "/" noch ein Wort, das auch groß sein sollte. Ich kenne mich mit regulären Ausdrücken in Java nicht so aus, und will nicht viel Code dafür schreiben.
Deshalb dachte ich, falls ein anderer Datenanbieter ein Problem der Art schon gelöst hat, könnte ich das vielleicht übernehmen. Sonst lass ich es bei Großschreibung.
Java: Reine Großschreibung in kombinierte Groß-/Kleinschreib
Ich habe es doch noch selbst gemacht. Vermutlich unnötig kompliziert, aber es klappt:
Code: Alles auswählen
Pattern Casepattern = Pattern.compile("^(.?)([^/]*)(/?)(.?)(.*)");
Matcher Casematcher = Casepattern.matcher(genre);
if (Casematcher.find()) {
genre = Casematcher.group(1);
genre += Casematcher.group(2).toLowerCase();
if (Casematcher.group(3).equals("/")) {
genre += "/"+ Casematcher.group(4);
genre += Casematcher.group(5).toLowerCase();
}
}
Also ich hab das so gemacht:
Ich glaub dein Code findet nicht alle Stellen. Und nochwas: Java-StyleGuide sacht das Variablen klein geschrieben werden
Code: Alles auswählen
String genre = "HALLO/dies IST Genre TEXT";
Pattern pattern = Pattern.compile("\\b[ÄÖÜA-Z]([ÖÄÜA-Z]*)\\b");
Matcher matcher = pattern.matcher(genre);
StringBuilder builder = new StringBuilder();
int pos = 0;
while (matcher.find()) {
builder.append(genre.substring(pos, matcher.start(1)));
builder.append(genre.substring(matcher.start(1), matcher.end(1)).toLowerCase());
pos = matcher.end(1);
}
builder.append(genre.substring(pos));
System.out.println("FINAL : " + builder.toString());