【发布时间】:2010-11-24 05:59:44
【问题描述】:
我正在尝试构建一个地图,时间从 06.00 到 23:59 作为键,我将跟踪每个时间的数字作为值。我需要时间将 HH.mm 存储为格式,我正在计划通过增加一分钟来使用循环构建地图并在循环内运行以下代码。这里的问题是因为我必须严格将格式设置为 HH.MM 我必须将输入作为字符串并将其格式化然后解析它返回为影响性能的双倍。是否有一个全局设置要更改,以便我在这个特定类中选择的任何双倍数都应该是格式##.##。这里还要注意的是,因为它是时候结束了在 60 分钟,因此我必须在 .6 的帮助下中断当前迭代。
Map map = new LinkedHashMap();
//Edit:Moved DecimalFormat Outside the loop
DecimalFormat df = new DecimalFormat("##.##");
for (double time= 06.00; time<= 22.00; time= time+ 01.00)
{
String timeString = df.format(appointmentTime);
time = Double.parseDouble(timeString);
if (timeString.indexOf(".6") != -1)
{
time= time+ 00.40;
}
map.put(time,"<number>");
}
【问题讨论】:
-
我认为您采取了错误的方法。您到底想解决什么问题?
-
我正在尝试为特定 java 类中的所有双精度值保持通用格式##.##。格式化单个元素会影响性能。硬编码会影响可读性及其流畅的 Map,可能会有步长值从 1 分钟到 30,所以我也无法对其进行硬编码。
-
如果您能够将您的示例程序修改为可以编译、运行和打印出一些有意义的值和消息的示例程序,我认为这对我们来说会更容易理解,从而可以提供帮助。