如果你说的是通过java编辑excel,使单元格中本来显示为百分比的数值显示为数字(即去掉百分号并将数值除100),可以给单元格设置格式
在apache POI中可以这样写
CellStyle numberStyle = workbook.createCellStyle();
numberStyle.setDataFormat(workbook.createDataFormat().getFormat("0.00"));
cell.setCellStyle(numberStyle);
其他操作excel的库也差不太多。这样做的前提是你的excel文件中,单元格的值确实是数值而不是字符串。
如果你问的是java怎么将一个符合"^-?(?!0\d)\d+(\.\d+)?%$"的字符串转换为double类型或BigDecimal类型的变量,那么可以先通过正则验证字符串的有效性,然后用BigDecimal类从字符串中构造一个对象。
import java.math.BigDecimal;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String percentString = "25.5%";
String regex = "^-?(?!0\\d)\\d+(\\.\\d+)?%$";
if (Pattern.matches(regex, percentString)) {
// 移除百分号并转换为BigDecimal
String numericString = percentString.replace("%", "");
BigDecimal percentValue = new BigDecimal(numericString);
// 将百分数转换为小数形式
BigDecimal decimalValue = percentValue.divide(BigDecimal.valueOf(100));
System.out.println("Converted BigDecimal: " + decimalValue);
} else {
System.out.println("Invalid percent string");
}
}
}
鉴于你给的信息太少了,建议还是先丰富下问题吧