Macht Java-String.getBytes("UTF-8") erhalten lexicograhpical bestellen?

Wenn ich eine alphabetisch sortierte Liste von Java-Strings [s1,s2,s3,s4, ...., sn], und dann konvertieren Sie jede Zeichenfolge in ein byte-array mit UTF-8-Codierung bx = sx.getBytes("UTF-8") ist die Liste von byte-arrays, die [b1,b2,b3,...bn] auch lexikographisch sortiert?

  • da UTF-8 ist ein variabler Breite Codierung, ich würde sagen, dass die Sortierreihenfolge wird nicht beibehalten
  • Ich bin mir nicht sicher, deine Frage macht keinen Sinn; wie würden Sie Sortieren bits/bytes lexikographisch? Den Zeichensatz, den Sie anzeigen bits/bytes ist der entscheidende Faktor.
  • Roach Lexikographische Ordnung auf byte-arrays ist ähnlich wie bei Strings. Ersetzen Sie einfach "Charakter x" mit "byte bei x". Siehe z.B. stackoverflow.com/questions/5108091/...
  • Nicht unbedingt. Ich brauche nicht zu vergleichen, alle bytes, wird nur bis zum ersten Unterschied. Da UTF-8 reversibel ist der erste Unterschied in der Länge für 2 Zeichen sollten andeuten Unterschied in bytes von deren Codierung. Ich bin mir allerdings nicht sicher, ob dies genug, um zu bewahren, um.
  • Aber UTF-8 wurde speziell zur Erhaltung der Sortierreihenfolge trotzdem.
InformationsquelleAutor Carsten | 2012-08-15
Schreibe einen Kommentar