所以,如果我有一个字符串数组,如:
array = { "Carol", "`-=[]\;',.//uF18*-+~!@#$*"};
我如何对它进行排序,以便在重新分类中首先使用标点符号?使用Arrays.sort(数组)会将这些字符串放在任何字符串开头之后。我们的目标是:
array = {"`-=[]\;',.//uF18*-+~!@#$*", "Carol"}
排序后。
答案 0 :(得分:2)
这听起来像整理,通常基于自定义字符序列。例如。 RuleBasedCollator
可让您定义不同字符之间的相互关系:
Collator collator = new RuleBasedCollator("< '`','-','=' < A,B,C");
String[] array = { "Carol", "`-=[]\\;',.//uF18*-+~!@#$*"};
Arrays.sort(array, collator);
为了便于阅读,我们一直保持不足,但很明显,你需要在这些规则中处理更多角色。通常没有必要走得太远 - 你遗漏的任何角色只是恢复到正常的顺序,在规则之后。并注意标点符号往往需要引用。
RuleBasedCollator
确实在这些规则中有更多的内容。例如,它可以在排序之前处理多字母分组,例如,西班牙语"< c < ch < d"
。如有疑问,请查看Javadocs。