gpt4 book ai didi

包含整数的字符串的 Java 比较器

转载 作者:行者123 更新时间:2023-12-01 17:25:00 25 4
gpt4 key购买 nike

我正在尝试编写一个比较器,用于根据字符串列表所具有的整数对字符串列表进行排序。前任。 H3232GHSD3和H56RFRSFR4,第一个字符串的整数为32323,而第二个字符串的整数为564,因此第二个字符串小于第一个字符串。

这是我的代码

import java.util.*;

// Sorts strings based on integers it contains
class IntComparator implements Comparator<String>{

@Override
public int compare(String s1, String s2) {
// Strip the non integers from strings
s1 = s1.replaceAll("[^\\d.]","");
s1 = s1.replaceAll("[^\\d.]","");
// change string to integers
int l1 = Integer.parseInt(s1);
int l2 = Integer.parseInt(s2);

if(l1 > l2){
return 1;
}
else if(l1 < l2){
return -1;
}
return 0;
}
}
public class sample {
public static void main(String[] args) {

List<String> RandomString = new ArrayList<String>();

RandomString.add("HA4ZNV0WE1");
RandomString.add("A3XHN20WE1");
RandomString.add("D4VH3V0WE1");

Collections.sort(RandomString, new IntComparator());

for(String R : RandomString){
System.out.println(R);
}

}

}

这是我得到的错误

Exception in thread "main" java.lang.NumberFormatException: For input string: "HA4ZNV0WE1"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at IntComparator.compare(sample.java:13)
at IntComparator.compare(sample.java:1)
at java.util.TimSort.countRunAndMakeAscending(Unknown Source)
at java.util.TimSort.sort(Unknown Source)
at java.util.TimSort.sort(Unknown Source)
at java.util.Arrays.sort(Unknown Source)
at java.util.Collections.sort(Unknown Source)
at sample.main(sample.java:36)

谢谢

最佳答案

您的代码中有一个拼写错误。改变 -

// Strip the non integers from strings
s1 = s1.replaceAll("[^\\d.]","");
s1 = s1.replaceAll("[^\\d.]","");

对此 -

// Strip the non integers from strings
s1 = s1.replaceAll("[^\\d.]","");
s2 = s2.replaceAll("[^\\d.]",""); // In your code, you've written s1 here too.

我假设您已经复制并粘贴了第一行,但忘记更改变量名称。这就是为什么有时它被称为 anti-pattern .

关于包含整数的字符串的 Java 比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15652189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com