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

如题所述

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

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-02-26
如果你有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
第2个回答  2011-02-26
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之间
}
第3个回答  2011-02-26
public class A{
public static void main(String[] args){
for(int i=0 i<10000 i++){
自己在想想这里
}
}
第4个回答  2011-02-26
java中有用来格式化数字和时间的工具类。
DecimalFormat decimalFormat = new DecimalFormat("0000");
int num = 345;
String numFormatStr = decimalFormat.format(num);
System.out.println(numFormatStr);

在Java中怎么把1到9999的数字转成 4位字符串,左边补0 如 0001...
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...

如何递增一个数字C# java都可以
你的数据长度为4,所以可以在递增后在前面补0就可以了;代码如下:for(int i = 1; i < 9999; i ++){ int length = i.length;\/\/获取数字的长度;int count = 4 - length;\/\/然后获取需要补零的长度;string temp = "";\/\/初试化一个字符串;if(count > 0)\/\/判断补零的位数是否为零...

Visual C++ sprintf()函数用法
1. 处理字符方向。负号时表示从后向前处理。2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。3. 字符总宽度。为最小宽度。4. 精确度。指在小数点后的浮点数位数。=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-转换字符=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-%% 印出百分比符号,...

C语言中\\0、'\\0'、'0'、0分别是什么?
也就是字符数组的最后一位加上的'\\0'\\0的ASCII码为0,也就是空字符 上面的就是从字符数组的开始读取,直到最后字符串结束标志'\\0'。字符串总是以'\\0'作为串的结束符。因此当把一个字符串存入一个数组时,也把结束符'\\0'存入数组,并以此作为该字符串是否结束的标志。

相似回答