Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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
用于排序DropDownlist的java字符串数字比较器_Java_Comparator - Fatal编程技术网

用于排序DropDownlist的java字符串数字比较器

用于排序DropDownlist的java字符串数字比较器,java,comparator,Java,Comparator,字符串数字比较器对DropDownlist进行排序: 列表包括:每1个月1个,2个月…每12个月2个 我尝试了StringComparator,String Numeric Comparator,Numeric Comparator,Split Comparator,但没有成功,任何建议您的比较器自定义实现将帮助您: Comparator<String> comp = new Comparator<String>() { public int compare(Stri

字符串数字比较器
对DropDownlist进行排序:

列表包括:每1个月
1个
2个月
…每12个月
2个


我尝试了
StringComparator
String Numeric Comparator
Numeric Comparator
Split Comparator
,但没有成功,任何建议

您的比较器自定义实现将帮助您:

Comparator<String> comp = new Comparator<String>() {
  public int compare(String o1, String o2) {
    // TODO
  }
};
比较器comp=新比较器(){ 公共整数比较(字符串o1、字符串o2){ //待办事项 } };
您必须编写自己的比较器。首先,您必须计算x/y,其中文本为每y个月x。然后你只需要比较x1/y1和x2/y2

Comparator<String> comp = new Comparator<String>() {
    public int compare(String o1, String o2) {
        Double d1 = calcValue(o1);
        Double d2 = calcValue(o2);
        return d1.compareTo(d2);
    }

    private Double calcValue(String s) {
         Double x, y;
         // extract x and y from String s
         ...
         return x / y;
    }
};
比较器comp=新比较器(){ 公共整数比较(字符串o1、字符串o2){ 双d1=计算值(o1); 双d2=钙值(o2); 返回d1。比较(d2); } 专用双计算值(字符串s){ 双x,y; //从字符串s中提取x和y ... 返回x/y; } };
给出一个更具启发性的示例,一个前后示例会有所帮助。请也给出您的代码示例。我在stringNumeric和spilt comparator中自定义了相同的实现,但不幸的是它没有排序。请提供一个示例说明“排序”的含义。