【发布时间】:2012-08-15 23:08:48
【问题描述】:
如果我有一个按字典顺序排列的 Java 字符串列表[s1,s2,s3,s4, ...., sn],然后使用 UTF-8 编码 bx = sx.getBytes("UTF-8") 将每个字符串转换为字节数组,那么字节数组列表 [b1,b2,b3,...bn] 是否也按字典顺序排序?
【问题讨论】:
-
由于 UTF-8 是可变宽度编码,所以我会说不会保留排序顺序
-
我不确定你的问题是否有意义;您将如何按字典顺序对位/字节进行排序?您将这些位/字节映射到的字符集是决定因素。
-
@Brian Roach 字节数组上的字典顺序与字符串上的相似。只需将“x 处的字符”替换为“x 处的字节”即可。参见例如stackoverflow.com/questions/5108091/…
-
@Dmitry 不一定。我不需要比较所有字节,只需要比较第一个差异。由于 UTF-8 是可逆的,因此 2 个字符的第一个长度差异应该意味着它们编码的字节数不同。但是,我不确定这是否足以维持秩序。
-
@DmitryBeransky:但 UTF-8 是专门为保留排序顺序而设计的。
标签: java sorting utf-8 arrays lexicographic