Java字符串中都包含数字怎么操作
问题描述:Java字符串中都包含数字怎么操作
推荐答案 本回答由问问达人推荐
要对包含数字的字符串进行排序,可以使用自定义比较器来实现按照字符串中数字的大小进行排序。下面是一种实现方式:
import java.util.Arrays;
import java.util.Comparator;
class CustomComparator implements Comparator {
@Override
public int compare(String str1, String str2) {
// 提取字符串中的数字部分进行比较
int num1 = Integer.parseInt(str1.replaceAll("\\D", ""));
int num2 = Integer.parseInt(str2.replaceAll("\\D", ""));
return num1 - num2;
}
}
public class StringSorting {
public static void main(String[] args) {
String[] strings = {"apple3", "banana12", "orange5"};
Arrays.sort(strings, new CustomComparator());
for (String str : strings) {
System.out.println(str);
}
}
}
在上述示例中,我们定义了一个自定义比较器CustomComparator,它通过使用replaceAll()方法和正则表达式\\D来移除字符串中的非数字字符,然后将提取到的数字部分转换为整数。然后,我们使用Arrays.sort()方法与自定义比较器一起对字符串数组进行排序,并输出排序后的结果。
输出结果为:
apple3
orange5
banana12
以上代码通过提取字符串中的数字部分来进行排序,如果字符串中没有数字,则按照普通的字典顺序进行排序。
查看其它两个剩余回答