gpt4 book ai didi

java - 由于性能问题双重字符串替代

转载 作者:行者123 更新时间:2023-11-30 06:01:07 25 4
gpt4 key购买 nike

需要帮助寻找替代品。这是我在环境中运行的当前代码。看起来它影响了我的应用程序的性能并且速度不够快。我正在考虑 try-catch 方法。它会工作还是有更好的选择可以建议将 double 转换为字符串?

public static String formatDoubleValue(String string) {

if (string == null)
return null;

if (string.matches("-?\\d+(\\.\\d+)")) {
//System.out.println(string + " is a Double");
Double dVal = Double.parseDouble(string);
//System.out.println("Formatted value: " + NUM_FORMAT.format(dVal));
return NUM_FORMAT.format(dVal);
} else {
//System.out.println(string + " is not a Double");
return string;
}
}

public static String formatDoubleValuesixdigit(String string) {

if (string == null)
return null;

if (string.matches("-?\\d+(\\.\\d+)")) {
//System.out.println(string + " is a Double");
Double dVal = Double.parseDouble(string);
//System.out.println("Formatted value: " + NUM_FORMAT.format(dVal));
return NUM_FORMAT_SIXDIGIT.format(dVal);
} else {
//System.out.println(string + " is not a Double");
return string;
}
}

最佳答案

很难提出替代方案,因为我们不确切知道您希望如何格式化数字。

但是,每次执行此行时:

if (string.matches("-?\\d+(\\.\\d+)")) {

您正在重新编译一个正则表达式。这将相当缓慢。

编译一次,存入字段:

static final Pattern PATTERN = Pattern.compile("-?\\d+(\\.\\d+)");

然后在条件中使用它:

if (PATTERN.matcher(string).matches()) {

关于java - 由于性能问题双重字符串替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58772425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com