Java: Reine Großschreibung in kombinierte Groß-/Kleinschreib

Hier wird dir geholfen, wenn du TV-Daten anbieten möchtest.
Antworten
Jo
Site Admin
Beiträge: 11815
Registriert: 07 Apr 2006, 23:39

Java: Reine Großschreibung in kombinierte Groß-/Kleinschreib

Beitrag von Jo »

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.
Jo
Site Admin
Beiträge: 11815
Registriert: 07 Apr 2006, 23:39

Beitrag von Jo »

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();
  }
}
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Also ich hab das so gemacht:

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());
Ich glaub dein Code findet nicht alle Stellen. Und nochwas: Java-StyleGuide sacht das Variablen klein geschrieben werden ;)
Jo
Site Admin
Beiträge: 11815
Registriert: 07 Apr 2006, 23:39

Beitrag von Jo »

Mein Code findet nur einen Schrägstrich, es taucht aber auch höchstens einer auf. Mir fällt aber gerade etwas viel schlimmeres auf: Nach dem Schrägstrich muss klein geschrieben werden. Da war die Mühe ohnehin umsonst.
Antworten