您好我已尝试过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 );
}
}
答案 0 :(得分:1)
请看Java Tutorial: Formatting Numeric Print Output。
例如:
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"
答案 1 :(得分:1)
您只需使用模式String.format(pattern,data)
%02d
即可
%
代表模式的开头2
表示输入应至少写成两个字符__
0
但如果输入时间短于两个字符,请填写0
_a
- > 0a
d
是数字这意味着数字传递的数字应该用两个字符写,如果有空格(数字太短,如0
,1
,2
直到{{ 1}})使用9
填充前面的空格。
演示:
0
输出:String formatted = String.format("%02d:%02d", 4,2);
System.out.println(formatted);
答案 2 :(得分:0)
问题在于这一行:
int blank = Integer.parseInt("0");
由于您的空白是整数0,blank + min
将与min相同。尝试使用" 0"不改变类型。
此外,正如David Wallace所提到的那样,您应该将(min > 10 )
替换为(min >= 10 )
或(min > 9 )