Java wie kann ich eine akzentuierte "e" zu einem string?
Mit Hilfe der tucuxi aus den vorhandenen post - Java entfernen, HTML aus String, die ohne reguläre Ausdrücke ich gebaut habe, eine Methode, die analysiert alle grundlegenden HTML-tags aus einem string. Manchmal jedoch, die ursprüngliche Zeichenfolge enthält html-hexadezimal-Zeichen wie é (was ist ein Akzent e). Ich habe angefangen, hinzufügen von Funktionalität, die übersetzt diese Escape-Zeichen enthält, die in echten Figuren.
Werden Sie wahrscheinlich Fragen: Warum nicht die reguläre Ausdrücke verwenden? Oder eine Drittanbieter-Bibliothek? Leider kann ich nicht, wie ich die Entwicklung auf einem BlackBerry-Plattform, die unterstützt keine regulären Ausdrücke, und ich habe nie in der Lage, erfolgreich ein third-party-Bibliothek, um mein Projekt.
So, ich habe mittlerweile zu dem Punkt, wo jeder é wird ersetzt mit "e". Meine Frage ist jetzt, wie füge ich eine tatsächliche "Akzent e' zu einem string?
Hier ist mein code:
public static String removeHTML(String synopsis) {
char[] cs = synopsis.toCharArray();
String sb = new String();
boolean tag = false;
for (int i = 0; i < cs.length; i++) {
switch (cs[i]) {
case '<':
if (!tag) {
tag = true;
break;
}
case '>':
if (tag) {
tag = false;
break;
}
case '&':
char[] copyTo = new char[7];
System.arraycopy(cs, i, copyTo, 0, 7);
String result = new String(copyTo);
if (result.equals("é")) {
sb += "e";
}
i += 7;
break;
default:
if (!tag)
sb += cs[i];
}
}
return sb.toString();
}
Dank!
- wer voted das runter? warum?
- Ich Frage mich, die gleiche Sache...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Java-Strings sind unicode.
Können Sie drucken Sie einfach über jedes Zeichen, das Sie gerne in Java, der es verwendet den Unicode-Zeichensatz.
Finden das Zeichen, das Sie wollen, werfen Sie einen Blick auf die charts hier:
http://www.unicode.org/charts/
In der lateinischen Supplement-Dokument sehen Sie alle unicode-Nummern der Zeichen mit Akzent. Sie sollten finden Sie die hex-Zahl 00E9 aufgeführt, die für é zum Beispiel. Die zahlen für alle lateinischen Sonderzeichen sind in diesem Dokument so sollten Sie diese ziemlich nützlich.
Zu drucken, die Zeichen in einer Zeichenfolge, verwenden Sie die Unicode-escape-Sequenz \u, gefolgt von den Zeichen-code in etwa so:
Produzieren würde: "Lass uns ins café gehen"
Je nachdem, in welche Java-version Sie verwenden, finden Sie vielleicht StringBuilders (oder StringBuffers wenn Sie multi-threaded) effizienter als die Verwendung des + - operator zum verketten von Zeichenfolgen zu.
versuchen Sie dies:
statt
Die Sache ist die, dass Sie nicht hinzufügen einen Akzent an die Spitze der 'e' - Zeichen, sondern das ist ein eigener Charakter alle zusammen. Diese Website Listen aus den ascii-codes der Zeichen.
Für eine Tabelle von akzentuierten Zeichen in Java werfen Sie einen Blick auf diese Referenz.
Dekodieren der html-Teil, die Apache verwenden StringEscapeUtils von Apache commons lang:
import org.apache.commons.lang.StringEscapeUtils;
...
String withCharacters = StringEscapeUtils.unescapeHtml(yourString);
Siehe auch dieser Stack-Overflow-thread:
Ersetzen Sie HTML-codes mit den entsprechenden Zeichen in Java