在Java中怎么把1到9999的数字转成 4位字符串,左边补0 如 0001 0002 0003

2024-12-30 12:56:35
推荐回答(5个)
回答1:

public static void main(String[] args) {

  //在Java中怎么把1到9999的数字转成 4位字符串,左边补0 如 0001 0002 0003

  System.out.println("请输入一个1-9999之间的数字:");

  Scanner s = new Scanner(System.in);

  String str = s.next();

  char[] ary1 = str.toCharArray();

  char[] ary2 = {'0','0','0','0'};

  

  System.arraycopy(ary1, 0, ary2, ary2.length-ary1.length, ary1.length);

  String result = new String(ary2);

  System.out.println(result);

 }

---请输入一个1-9999之间的数字:

   3

   0003

回答2:

如果你有com.common.lang.StringUtil这个工具类,那可以直接调用它的leftPad方法,
我自己写了个方法给也可以处理。

public class Cat {

public static void main(String[] args) {

int num = 12;

String str = leftPad(num, 4, '0');//4是针对9999以下的,类似的5针对99999
System.out.println("After pad, num " + num + " is: " + str);

}

private static String leftPad(int num, final int maxLen, char filledChar) {

StringBuffer sb = new StringBuffer();
String str = String.valueOf(num);

for(int i = str.length(); i < maxLen; i++){
sb.append(filledChar);
}

return sb.append(str).toString();
}

}

-----After pad, num 12 is: 0012

回答3:

int i = 0; //i是你要转换的数字
String str = null; //转换成字符串
if (i >0 && i < 10)
{
str = "000" + i; // 1~9之间
}
else if (i <100) {
str = "00" + i; // 10~99之间
} else if (i < 1000) {
str = "0" + i; // 100~999之间
} else if (i < 10000) {
str = i; // 1000~9999之间
}

回答4:

public class A{
public static void main(String[] args){
for(int i=0 i<10000 i++){
自己在想想这里
}
}

回答5:

java中有用来格式化数字和时间的工具类。
DecimalFormat decimalFormat = new DecimalFormat("0000");
int num = 345;
String numFormatStr = decimalFormat.format(num);
System.out.println(numFormatStr);