甚至可以在带有terny运算符的java中添加0吗?
嗨我已经尝试了所有来自terny运算符,if else语句并将int解析为字符串,我正在制作一个读取4:01 4:02的时钟,但它输出4:1
这是我的java代码,是否可以添加0? 或者我还需要别的东西?
package bank; import java.util.*; /** * * @author will */ public class dClock { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Calendar time = Calendar.getInstance(); int min = 1;//time.get(Calendar.MINUTE); int hour = time.get(Calendar.HOUR_OF_DAY); int blank = Integer.parseInt("0"); int hourOfDay = ((hour > 12) ? (hour - 12) : hour); int zero = ((min > 10 ) ? min : blank+min); System.out.println("The time is " + hourOfDay + ":" + zero ); } }
查看Java教程:格式化数字打印输出 。
例如:
long n = 461012; System.out.format("%08d%n", n); // --> "00461012"
另一个例子:
Calendar c = Calendar.getInstance(); System.out.format("%tl:%tM %tp%n", c, c, c); // --> "2:34 am"
您可以简单地使用带有模式%02d
String.format(pattern,data)
-
%
表示模式的开始 -
2
表示输入应写为至少两个字符__
-
0
但是如果输入短于两个字符,则用0
_a
– >0a
填充rest -
d
与数字相差无几
所有这意味着数字传递的数字应该使用两个字符写入,如果有空的空格(数字太短,如0
到9
),填充前面的空格为0
。
更多格式化程序文档
演示:
String formatted = String.format("%02d:%02d", 4,2); System.out.println(formatted);
输出:04:02
问题是这一行:
int blank = Integer.parseInt("0");
由于您的空白是整数0,因此blank + min
将与min相同。 尝试使用“0”而不更改类型。
另外,正如David Wallace所提到的,你应该用(min >= 10 )
或(min > 9 )
替换(min > 10 )
(min > 9 )