[FIXED] Java-Komparator für String in EBCDIC-Codierung

Ausgabe

Ich bin auf eine Anforderung gestoßen, bei der ich eine Zeichenfolge in die EBCDIC-Codierung konvertieren und dann sortieren muss. Wir müssen es mit EBCDIC sortieren, weil die Zeichenfolge in Mainframe gehen muss. Die Zeichenfolge, die ich sortieren werde, enthält nur Buchstaben in Großbuchstaben und nur ganze Zahlen.

Ich habe etwas gegoogelt und bin dann auf den
Link von IBM gestoßen, der die Zeichen der Reihe nach aufgelistet hat

Mir wurde klar, dass die EBCDIC-Sortierung der normalen lexikografischen Java-Sortierung genau entgegengesetzt ist (zumindest für die Art von Daten, die ich verarbeiten werde).

Meine Frage ist meine Erkenntnis richtig? Wenn nicht, was ich vermisse? ODER ist ein Java-Komparator für die EBCDIC-Codierung verfügbar.

Lösung

Da der Char-Typ in Java implizit UTF-16 ist, müssen EBCDIC-Strings als Java-Byte-Arrays verglichen werden.

Beispiel:

    Charset encoding = Charset.forName("IBM1047");
    Comparator<String> encComparator = (s1, s2) ->
            encoding.encode(s1)
                    .compareTo(encoding.encode(s2));


Beantwortet von –
McDowell


Antwort geprüft von –
Mildred Charles (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like