HTML Umlaute convertieren

soa

Erfahrenes Mitglied
Moin,

fange gerade wieder mit Java an und habe hier ein kleines Problem.

Bekomme eine Fehlermeldung bei folgendem Ausdruck: case 'ä':


PHP:
while ( c >= 0 ) {          
                 switch ( (char)c ){ 
        
                 case 'ä': System.out.print("ä"); break;
                 case 'Ä': System.out.print("Ä"); break;
                 case 'ö': System.out.print("ö"); break;
                 case 'Ö': System.out.print("Ö;"); break;
                 case 'ü': System.out.print("ü"); break;
                 case 'Ü': System.out.print("Ü"); break;
                 case '&slig;': System.out.print("ß"); break; 
        
                default : System.out.print((char)c ); 
                 } 
                c = in.read(); 
             }
         } catch (Exception e){};

Wie lautet dieser Ausdruck denn richtig? --> case 'ü':
Muss ich da noch eine Funktion einbinden?

Gr
 
Hallo!

'ä': -> Das ist kein char ;-)

Schau mal hier:
Code:
/**
 * 
 */
package de.tutorials;

/**
 * @author Tom
 * 
 */
public class HTMLEntitiesExample {

    /**
     * @param args
     */
    public static void main(String[] args) {
        HTMLEntity htmlEntity = HTMLEntity.valueOf("slig");
        System.out.println(htmlEntity.getTranslation());
    }

    enum HTMLEntity {
        Auml("Ä"), auml("ä"), Ouml("Ö"), ouml("ö"), Uuml("Ü"), uuml("ü"), slig(
                "ß");

        String translation;

        private HTMLEntity(String translation) {
            this.translation = translation;
        }

        public String getTranslation() {
            return translation;
        }
    }
}

Gruß Tom
 
Hallo,

den Code habe ich nur zum Teil verstanden, wenn ich ehrlich bin.

Ich bekomme hier eine Fehlermeldung:

enum HTMLEntitiy <-- Hängt das vielleicht mit dem SDK zusammen?

Könntest du mir den Code vielleicht noch etwas näher bringen?

Danke

Viele Grüße
SOA
 
Tom hat Dir die komfortable Variante aus Java 5 gezeigt. Arbeitest Du noch mit 1.4.x, mußt Du das etwas anders lösen:

Code:
Map map = new HashMap();
map.put("&auml;", "ä");
//...alle weiteren Einträge
 
//...
 
private char translate(String html) throws NullPointerException {
  if (html == null) throw new NullPointerException("html = null");
  String s = (String)map.get(html);
  if (s == null) {
    throw new NullPointerException(html + " ist nicht in der Map");
  } else {
    s.charAt(0);
  }
}

Zuerst füllst Du Deine Map mit allen zu übersetzenden Zeichen, wie in Deinem Code beschrieben. Die translate-Methode liefert nun die entsprechende Übersetzung. Die NullPointerExceptions sind lediglich zum Abfangen der Fehler vorhanden.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück