甚至可以在带有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与数字相差无几

所有这意味着数字传递的数字应该使用两个字符写入,如果有空的空格(数字太短,如09 ),填充前面的空格为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 )