Java实现支持多种分隔符的字符串转Float函数
Java字符串转Float:兼容多格式千位与小数点分隔符
需求是实现一个Java函数,将包含多种分隔符的数字字符串转换为Float类型:
- 小数点分隔符支持逗号或点
- 千位分隔符支持空格、点或逗号
对应示例转换要求:
- "998,4" → 998.4
- "998.4" → 998.4
- "7 899,45" → 7899.45
- "7.452,23" → 7452.23
- "7,123.12" → 7123.12
以下是实现代码:
public class Converter { public static float convertToFloat(String input){ // 移除所有千位分隔符:空格、点、逗号 String cleanedInput = input.replaceAll("[,\\s.]",""); // 将最后一个出现的分隔符替换为标准小数点 cleanedInput = cleanedInput.replaceFirst("[.,](?!.*[.,])","."); return Float.parseFloat(cleanedInput); } public static void main(String[] args){ String[] inputs = {"998,4", "998.4", "7 899,45", "7.452,23", "7,123.12"}; for(String input: inputs){ float result = convertToFloat(input); System.out.println("input:" + input + " result:" + result); } } }
代码逻辑说明:
- 清理千位分隔符:通过
replaceAll("[,\\s.]","")移除所有作为千位分隔符的空格、点和逗号,仅保留数字与唯一的小数点候选字符 - 统一小数点格式:使用
replaceFirst("[.,](?!.*[.,])",".")匹配字符串中最后出现的逗号或点(即真正的小数点),替换为Java解析Float时认可的标准小数点 - 解析为Float:调用
Float.parseFloat()将格式化后的字符串转换为Float类型
内容的提问来源于stack exchange,提问作者Amalia Muresan
相关产品推荐
相关产品推荐

