Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中字符串的传统西班牙语排序_Java_Sorting_Locale - Fatal编程技术网

Java中字符串的传统西班牙语排序

Java中字符串的传统西班牙语排序,java,sorting,locale,Java,Sorting,Locale,我正在将.NET应用程序转换为Java。应用程序读取以下格式的文件: es-MX jueves verde amarillo blanco llave llover loma cinco domingo rojo 但是我很难按照传统的单词排序方法来对西班牙语进行排序。在VB.NET中,您会看到: Dim spainCultureTraditional As CultureInfo = New CultureInfo(&H40A) 但是我在Java中找不到等效的传统排序区域设置。两者

我正在将.NET应用程序转换为Java。应用程序读取以下格式的文件:

es-MX
jueves
verde
amarillo
blanco
llave
llover
loma
cinco
domingo
rojo
但是我很难按照传统的单词排序方法来对西班牙语进行排序。在VB.NET中,您会看到:

 Dim spainCultureTraditional As CultureInfo = New CultureInfo(&H40A)
但是我在Java中找不到等效的传统排序区域设置。两者之间的唯一区别是,与国际分拣相比,在
es MX/es es中,
llave
llover
将被切换


注意:语言环境在Java中不一定相同,在VB.NET中也不一定相同。

您可能需要自定义排序规则。这里有一个传统西班牙语的演示:

摘要代码:

String smallnTilde = "\u00F1";
String capitalNTilde = "\u00D1";

String traditionalSpanishRules = (
    "< a,A < b,B < c,C " +
    "< ch, cH, Ch, CH " +
    "< d,D < e,E < f,F " +
    "< g,G < h,H < i,I < j,J < k,K < l,L " +
    "< ll, lL, Ll, LL " +
    "< m,M < n,N " +
    "< " + smallnTilde + "," + capitalNTilde + " " +
    "< o,O < p,P < q,Q < r,R " +
    "< s,S < t,T < u,U < v,V < w,W < x,X " +
    "< y,Y < z,Z");

RuleBasedCollator spCollator = new RuleBasedCollator(traditionalSpanishRules);

Collections.sort(words, spCollator);
System.out.println(words);
String smallnTilde=“\u00F1”;
字符串capitalNTilde=“\u00D1”;
字符串传统PanishRules=(
您可能需要定制的排序规则。这里有一个传统西班牙语的演示:

摘要代码:

String smallnTilde = "\u00F1";
String capitalNTilde = "\u00D1";

String traditionalSpanishRules = (
    "< a,A < b,B < c,C " +
    "< ch, cH, Ch, CH " +
    "< d,D < e,E < f,F " +
    "< g,G < h,H < i,I < j,J < k,K < l,L " +
    "< ll, lL, Ll, LL " +
    "< m,M < n,N " +
    "< " + smallnTilde + "," + capitalNTilde + " " +
    "< o,O < p,P < q,Q < r,R " +
    "< s,S < t,T < u,U < v,V < w,W < x,X " +
    "< y,Y < z,Z");

RuleBasedCollator spCollator = new RuleBasedCollator(traditionalSpanishRules);

Collections.sort(words, spCollator);
System.out.println(words);
String smallnTilde=“\u00F1”;
字符串capitalNTilde=“\u00D1”;
字符串传统PanishRules=(
我会说正确的是一个
折叠器
-但是我不能让它像你在ideone中描述的那样工作:我会说正确的是一个
折叠器
-但是我不能让它像你在ideone中描述的那样工作:当使用这个代码时,请删除对
新字符串的调用。很遗憾,官方的Java文档建议这样做,但是没有理由在您自己的代码中这样做。是的,我同意,我编辑了代码并删除了它们。我想这不允许这些绳子被拘留。非常感谢!它像一个符咒一样工作-更好的是,它完全可以解释它为什么工作。使用此代码时,请删除对
新字符串的调用。很遗憾,官方的Java文档建议这样做,但是没有理由在您自己的代码中这样做。是的,我同意,我编辑了代码并删除了它们。我想这不允许这些绳子被拘留。非常感谢!它像一个符咒一样工作——更好的是,它的工作原理完全有道理。