public static String getId(int n) { String sn = String.valueOf(n); int len = 3 - sn.length(); if (len > 0) { for (int i = 0; i < len; i++) { sn = "0".concat(sn); } } return sn; }用的时候传一个递加的数字就行了 这个方法比较笨一点,应该还有更好的办法
你是想要递加过程中生成的所有字符串吧? 你可以转化成整形递加:0,1,2,3……最后再进行格式化,不够五位的前面补零 给你个格式化的函数public class NumberUtil{ public static String formatNumInteger(int num, int unit) { String zero = ""; if (unit == 0) { zero = "0"; } else { zero = ""; } for (int i = 0; i < unit; i++) { zero += "0"; } DecimalFormat df = new DecimalFormat(zero); return df.format(num); } }
String sn = String.valueOf(n);
int len = 3 - sn.length();
if (len > 0) {
for (int i = 0; i < len; i++) {
sn = "0".concat(sn);
}
}
return sn;
}用的时候传一个递加的数字就行了
这个方法比较笨一点,应该还有更好的办法
你可以转化成整形递加:0,1,2,3……最后再进行格式化,不够五位的前面补零
给你个格式化的函数public class NumberUtil{
public static String formatNumInteger(int num, int unit) {
String zero = "";
if (unit == 0) {
zero = "0";
} else {
zero = "";
}
for (int i = 0; i < unit; i++) {
zero += "0";
}
DecimalFormat df = new DecimalFormat(zero);
return df.format(num);
}
}
00000
00001
00002
.
.
.
0000A
.
.
.
0000Z
.
.
.
00010
.
.
.
0001Z
.
.
.
ZZZZY
ZZZZZ
public static void main(String[] args) {
String s = "00000";
StringBuilder sb = new StringBuilder();
char[] cArr = s.toCharArray();
for(int i = cArr.length -1 ;i>=0; i--) {
char c = cArr[i];
for(int j = 1; ; j++) {
c += j;
if(String.valueOf(c).codePointAt(0) == 122) {
sb.append(c);
break;
}
}
}
System.out.println(sb.toString());
}
}
不知道这样是否是楼主的意思?
public class StringAdd {
// 对串d按36进制加1,返回新串
public static String inc(String d)
{
return inc(d.toCharArray(),d.length()-1);
}
private static String inc(char[] d,int pos)
{
for(int i=pos;i>=0;i--)
{
d[i]=next(d[i]);//加1
if(d[i]!='0') break; //若没有进位,则立即结束。
}
return new String(d);
}//返回36进制数字c的下一个数字
private static char next(char c)
{
if(c=='9') return 'A';
if(c=='Z') return '0';
return (char)(c+1);
}public static void main(String[] args) {
// TODO 自动生成方法存根
System.out.println("000ZZ的下一个数串是:"+inc("000ZZ"));
}
}
程序运行结果:
000ZZ的下一个数串是:00100
String s="00000";
System.out.println(s);
while( !s.equals("ZZZZZ"))
{
s=inc(s);
System.out.println(s);
}
000ZZ的下一个数串是:00100
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
0000A
0000B
0000C
ZZZZY
ZZZZZ
如:static String s="ssdie";
s="dedsfa";
结果是什么?
static byte s[] = {'0', '0', '0', '0'};
private static String next()
{
int index = 3;
while ((s[index] = inc(s[index])) == '0') index --;
return new String(s);
}
private static byte inc(byte b)
{
if (b == '9') return 'A';
if (b == 'Z') return '0';
return ++ b;
} public static void main(String []args) throws UnsupportedEncodingException
{
for (int i = 0; i < 10000; i++)
{
System.out.println(next());
}
}
}