int转换为Stringjava 时,如何使用零填充?
我基本上希望9999用前导零填充整数(例如1 = 0001).
我想知道是否有可能使用Java中的String.format方法给出一个前面的零整数?
例如:
1将成为001
2将成为002
...
11将成为011
12将成为012
...
526将保持为526
......等
目前我尝试了以下代码:
String imageName = "_%3d" + "_%s";
for( int i = 0; i < 1000; i++ ){
System.out.println( String.format( imageName, i, "foo" ) );
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这在数字前面有3个空格.是否可以在数字前面加零?
而不是这样做,我想利用string.format()来完成相同的结果:
if (myString.Length < 3)
{
myString = "00" + 3;
}
Run Code Online (Sandbox Code Playgroud) 我有两个Date对象,我需要得到时间差,这样我就可以确定它们之间的总小时数.他们碰巧是在同一天.我想要的结果是小时和分钟.
当我在我的Date对象上使用.toString()时,我得到了这个:Fri Dec 18 08:08:10 CST 2009
我尝试过以下方法:
long diff=(this.endDate.getTime()-this.startDate.getTime())/(60*60 * 1000);
Run Code Online (Sandbox Code Playgroud)
但这只给我几小时,而不是分钟.我知道这是一个简单的问题,但我无法理解它.
编辑:感兴趣的人的最终解决方案.感谢Michael Brewer-Davis
Period p = new Period(this.startDate, this.endDate);
long hours = p.getHours();
long minutes = p.getMinutes();
String format = String.format("%%0%dd", 2);
return Long.toString(hours)+":"+String.format(format, minutes);
Run Code Online (Sandbox Code Playgroud) 我想格式化一个3位数integer到4位string数值.例:
int a = 800;
String b = "0800";
Run Code Online (Sandbox Code Playgroud)
当然格式化将在String b声明中完成.多谢你们!
我希望使用Joda Time获得两次P(开始时间)和Q(结束时间)之间的差异.P和Q可以是不同日期甚至同一天的时间.我希望得到格式HH-MM-SS的差异,其中H =小时,M =分钟,S =秒.
我想在计时器中使用此功能.我假设没有人会使用我的计时器测量超过24小时.
请指导我这样做.
可能重复:
在Java中向数字添加前导零?
假设我必须添加两个整数,一个是0001,另一个是0002.如果我在java中添加它然后我得到3但是我想要0003.我是否必须制作一个循环以映射零或者是否有更简单的方法.
帮助我,如何添加一个重要的0到数字变量(int,float,ecc)?
int s = 0; -> 00
int m = 0; -> 00
int h = 0; -> 00
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用该函数向用户输入的数字添加零printf()。但是,我不确定语法用法。这是我到目前为止所拥有的:
public class Solution {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
final int requiredNumLength = 3;
// readign untill EOF
while (reader.hasNext()){
// getting the word form the input as a string
String word = reader.next();
// getting the number from the input as an integer
int num = reader.nextInt();
int length = String.valueOf(num).length();
if (length < requiredNumLength){
int zerosRequired = requiredNumLength - length;
//System.out.println("required zeros: " + zerosRequired);
}
// print out …Run Code Online (Sandbox Code Playgroud) 我需要增加一个只有数字的字符串:
String current = "000433"; //After increment, will be "000434"
Run Code Online (Sandbox Code Playgroud)
我有这个程序,它正常工作:
private String incrementOne(String numberAsString) {
int leftZeroCount = countLeadingZeros(numberAsString);
Integer asInteger = Integer.parseInt(numberAsString);
asInteger++;
return parseStringWithNZeros(asInteger, leftZeroCount);
}
private String parseStringWithNZeros(Integer asInteger, int leftZeroCount) {
String asString = Integer.toString(asInteger);
for (int i = 0; i < leftZeroCount; i++)
asString = "0" + asString;
return asString;
}
private int countLeadingZeros(String numberAsString) {
int count = 0;
int i = 0;
while (numberAsString.charAt(i) == '0' && i < numberAsString.length()) {
count++; …Run Code Online (Sandbox Code Playgroud)