You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java/Kotlin中将$5,000,000这类格式化货币值转换为纯数字5000000?

带货币符号、千位分隔符的金额字符串转纯数字实现方案(Java/Kotlin)

核心思路

有两种常用实现路径:

  • 基于系统提供的国际化格式化工具解析,适配不同地区的货币格式规则,通用性更强
  • 直接清洗字符串过滤非数字字符,适合固定格式场景,实现更轻量

Java 实现

方案1:使用NumberFormat标准货币解析(推荐,通用性强)

import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Locale;

public class CurrencyConverter {
    public static long convertCurrencyToNumber(String currencyStr) throws ParseException {
        // 针对美元$格式使用US区域,其他货币可替换对应Locale
        NumberFormat currencyFormat = NumberFormat.getCurrencyInstance(Locale.US);
        Number number = currencyFormat.parse(currencyStr);
        return number.longValue();
    }

    public static void main(String[] args) throws ParseException {
        String input = "$5,000,000";
        long result = convertCurrencyToNumber(input);
        System.out.println(result); // 输出 5000000
    }
}

方案2:字符串清洗快速实现

如果场景固定只有$符号、逗号千位分隔符,可直接过滤非数字字符:

public class CurrencyConverter {
    public static long convertCurrencyToNumber(String currencyStr) {
        // 过滤所有非0-9的字符后转长整型
        String pureNumStr = currencyStr.replaceAll("[^0-9]", "");
        return Long.parseLong(pureNumStr);
    }
}

注意:该方案默认金额为正整数,若存在小数位需保留.字符,可将正则修改为[^0-9.]


Kotlin 实现

方案1:标准货币解析

import java.text.NumberFormat
import java.util.Locale

fun convertCurrencyToNumber(currencyStr: String): Long {
    val currencyFormat = NumberFormat.getCurrencyInstance(Locale.US)
    return currencyFormat.parse(currencyStr).toLong()
}

// 调用示例
fun main() {
    val input = "$5,000,000"
    val result = convertCurrencyToNumber(input)
    println(result) // 输出5000000
}

方案2:字符串清洗实现

fun convertCurrencyToNumber(currencyStr: String): Long {
    val pureNumStr = currencyStr.filter { it.isDigit() }
    return pureNumStr.toLong()
}

注意:若需支持小数,可调整过滤逻辑保留.字符,返回类型改为Double或BigDecimal即可


常见异常处理建议

  • 输入字符串为空时需提前判空,避免解析异常
  • 金额超出Long范围时,可改用BigDecimal存储解析结果
  • 多货币场景下需动态切换Locale参数适配对应货币格式

内容的提问来源于stack exchange,提问作者nadhif Aini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:09:03