解决java导入excel的数值类型时数值变成有小数点或者大写字母

当我们用excel批量导入数据时候 若有一列值为数字类型 导入后此列值将会由excel中一串长长的数字变成导入后有小数点或者大写英文字母 此时我们需要在读取此列的数据时(操作整列) 所谓做一下判断和转换即可在这里插入图片描述

Java中对字符串类型数字进行排序,如果需要考虑小数点前后的顺序并且"9"排在"10"之前,你需要借助自定义比较器(Comparator)。由于原始的自然排序规则会按照ASCII码或Unicode字符顺序来排列,所以我们需要编写一个实现了`Comparable`接口的类,或者创建一个匿名内部类作为`Comparator`实例,其中的`compare`方法根据你的需求进行定制。 例如,你可以这样做: ```java import java.text.DecimalFormat; import java.util.Arrays; import java.util.Comparator; public class Main { public static void main(String[] args) { String[] numbers = {"10", "9.5", "9", "10.1"}; Arrays.sort(numbers, new Comparator<String>() { @Override public int compare(String s1, String s2) { // 使用DecimalFormat解析字符串并比较 DecimalFormat df = new DecimalFormat("#.#"); double num1 = Double.parseDouble(df.format(s1)); double num2 = Double.parseDouble(df.format(s2)); if (num1 < num2) return -1; // 如果第一个小于第二个,返回负 else if (num1 > num2) return 1; // 如果第一个大于第二个,返回正 else return 0; // 如果相等,保持原顺序 } }); System.out.println(Arrays.toString(numbers)); // 输出:[9, 9.5, 10, 10.1] } } ``` 在这个例子中,我们首先使用`DecimalFormat`格式化字符串以便转换成可以比较的`double`类型。然后通过`compare`方法根据数字大小进行排序。注意,这种方法假设输入的都是有效的数字字符串。如果可能有非数字字符串,还需要额外的错误处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值