gpt4 book ai didi

java - Java 中 String.format() 中的条件字符串

转载 作者:行者123 更新时间:2023-12-02 04:06:25 26 4
gpt4 key购买 nike

我有一个程序可以将给定的分钟数转换为天/小时/分钟等。

如果天 = 0,我尝试不显示 x 天 部分。对于小时和分钟也是如此。

所以一些示例输出将是:

5 days

--

5 days 2 hrs

--

2 hrs 10 mins

等等

如何才能做到这一点而不使我的打印语句与一堆三元运算符混淆?

我当前的解决方案是:

        final StringBuilder remDaysBuilder = new StringBuilder();

long remMins = Math.abs(request.getTimeRemaining());

final int remDays = (int) (remMins / 1440);
if (remDays > 0) {
remDaysBuilder.append(remDays + " Days");
}
remMins = remMins % 1440;
final int remHrs = (int) (remMins / 60);
if (remHrs > 0) {
remDaysBuilder.append(remHrs + " Hrs");
}
remMins = remMins % 60;
if (remMins > 0) {
remDaysBuilder.append(remMins + " Mins");
}

但是我觉得对于这么小的逻辑来说代码太多了!

最佳答案

final StringBuilder remDaysBuilder = new StringBuilder();

long remMins = Math.abs(request.getTimeRemaining());

final int remDays = remMins/24/60;
final int remHours = remMins/60%24;
final int remMins = remMins % 60;

remDaysBuilder
.append(String.format("%s",(remDays>0)?(Integer.toString(remDays)+" days "):"")
.append(String.format("%s",(remHours>0)?(Integer.toString(remHours)+" days "):"")
.append(String.format("%s",(remMins>0)?(Integer.toString(remMins)+" days "):"");

这样它就变得更易读并且更简短。

关于java - Java 中 String.format() 中的条件字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56711111/

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