我正在尝试创建一个Java代码,要求用户插入他们想要转换的秒数,但我怎么也无法让它工作。 有人可以帮忙吗? 代码如下 ...................................
import javax.swing.*;
public class Week2Seconds {
private static final int MINUTES_IN_AN_HOUR = 60;
private static final int SECONDS_IN_A_MINUTE = 60;
public static void main(String[] args) {
JFrame frame = new JFrame("InputDialog");
String seconds = JOptionPane.showInputDialog(frame, "Enter Number Of Seconds to Convert");
}
private static String timeConversion(int seconds) {
final int MINUTES_IN_AN_HOUR = 60;
final int SECONDS_IN_A_MINUTE = 60;
int minutes = seconds / SECONDS_IN_A_MINUTE;
seconds -= minutes * SECONDS_IN_A_MINUTE;
int hours = minutes / MINUTES_IN_AN_HOUR;
minutes -= hours * MINUTES_IN_AN_HOUR;
return hours + " hours " + minutes + " minutes " + seconds + " seconds";
}
}
非常感谢 维尼
答案 0 :(得分:3)
您将seconds
存储为String
,计算机不知道输入是一个数字,而且它甚至可能不是数字。您可以使用静态方法Integer.parseInt
尝试将字符串转换为整数。
int numSeconds = Integer.parseInt(seconds)
如果NumberFormatException
不是有效号码,则可以抛出seconds
。
将数字作为正确类型后,您可以将其传递给方法timeConversion(numSeconds);
根据您对由于创建了JFrame
而导致程序未正确退出的评论,JFrame
将保持您的程序正常运行,直到它被正确处理掉。使用JFrame
类超出了您的问题的范围,但是您的程序根本不需要此框架,请将其删除。将null
作为parentComponent
方法的showInputDialog
传递。
JOptionPane.showInputDialog(null, "Enter Number Of Seconds to Convert");
您可能会遇到一些后续问题:
try { } catch(NumberFormatException e) { }
并采取相应措施。这个问题和问题应该可以帮助你JAVA Input Validation for Number Range and Numeric values only with counter