一个面试中常考的问题 公司要为1000个员工编号,编号是1--1000,现在要求员工的每个编号都以"A"开头,后面是数字,保证是10位,不够的用0补上,比如:A000000001,A000000002,要求生成每个员工的编号,最后输出到控制台上,请问该如何实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其实就是1-1000之间的数字如果位数不足的话,需要补0而已第一种方案:做判定,如果是个位数,则前缀是A00000000如果是两位数,则前缀是A0000000如果是三位数,则前缀是A000000如果是1000, 则前缀是A00000第2中方案:将数字转化为字符串,判定长度,然后根据长度的差距来补0 String str = String.format("%09d", 100); System.out.println("A"+str) String strInt = ""; for(int i = 1;i <= 1000;i++){ strInt = String.format("%09d", i); System.out.println("A"+strInt); } 使用SQL语句:select concat('a',lpad(编号,10,"1")) from 员工表。要打印控制台的话,只需要查出来打印一下就行了。要更改的话下面这条:update 员工表 set 编号=concat('a',lpad(编号,10,"1")); 上面总共11位,要10为的话,把填充函数lpad()里面改为9 StringBuilder sb = new StringBuilder(); List<String> list = new ArrayList<String>(); for(int i=1;i<=1000;i++) { String s=i+""; for(int j=0;j<9-s.length();j++) { sb.append(0); } s="A"+sb.toString()+s; list.add(s); sb.delete(0, sb.length()); } for(String s: list) { System.out.println(s); } strInt = String.format("%09d", i); 是什么表达式啊 /* * id 你需要传入的编号 可以任意的 八位以内 ,并不需要限制在 1- 1000 */ public String getResult(String id){ String temp = "00000000" + id; temp = temp.substring(temp.length()-9, temp.length()); return "A"+temp; } for(int i = 1;i <= 1000;i++){ System.out.println(String.format("A%09d", i)); } public static void main(String[] args) { String persionId="1"; int temp=Integer.parseInt(persionId); for(temp=1;temp<=1000;temp++){ if(temp<10){//1 persionId="A00000000"+temp; }else if(temp<100){//2 persionId="A0000000"+temp; }else if(temp<1000){//3 persionId="A000000"+temp; }else if(temp==1000){//4 persionId="A00000"+temp; } System.out.println("当前编号:"+persionId); } } for(int i=1;i<=1000;i++){ if(i<10){ System.out.println("A00000000"+i); }if(i<100 && i>=10){ System.out.println("A0000000"+i); } if(i<1000 && i>=100){ System.out.println("A000000"+i); }if(i==1000){ System.out.println("A00000"+i); } } 好多高手哦,看来得经常在csdn里好好学习学习 for(int i = 1;i <= 1000;i++){System.out.println(String.format("A%09d", i));}( ^_^ )不错嘛 String vstr = "";for(int i=1; i<=1000; i++){ System.out.println(String.format("A%09d", i));}不错的写法 for(int i=1;i<=1000;i++){ String Num = "A00000000"; String Str = (i > 999 ? Num.substring(0,6): i > 99 ? Num.substring(0,7) : i>9 ? Num.substring(0,8) : Num) + i; System.out.println(Str); } int MyNum = 10000; //生成编号总数 int MyLength = 5; //生成编号的位数 String StrType = "0"; //默认不足位数填充符号 for(int i=1;i<=MyNum;i++){ String NumLength = ""; for(int j=0;j<MyLength-1-String.valueOf(i).length();j++){ NumLength+=StrType; } if(String.valueOf(i).length() > MyLength-1){ //如果生成编号位数大于规定位数则退出生成 return; } String Str = "A"+NumLength + i; System.out.println(Str); } java.text.DecimalFormat df = new java.text.DecimalFormat("0000000000"); num=df.format( num);String str="a"+num; public void print(){ String first="A"; for(int i = 1 ;i <= 1000 ; i++) { String i1=i.toString(); if(i1.length==1) { String center="00000000"; System.out.println(first+center+i1); }else if(i1.length==2) { String center="0000000"; System.out.println(first+center+i1); }else if(i1.length==3) { String center="000000"; System.out.println(first+center+i1); }else if(i1.length==4) { String center="00000"; System.out.println(first+center+i1); } }} 第一种方案:做判定,如果是个位数,则前缀是A00000000如果是两位数,则前缀是A0000000如果是三位数,则前缀是A000000如果是1000, 则前缀是A00000第2中方案:将数字转化为字符串,判定长度,然后根据长度的差距来补0 String strInt = ""; for(int i = 1;i <= 1000;i++){ strInt = String.format("%09d", i); System.out.println("A"+strInt); }这个比较易读易懂! for(int i=1;i<1001;i++){ System.out.println(String.format("A%09d", i)); }这个比较简洁! PL/SQL在哪下载中文版的啊?怎么安装啊?请教高人。。。 听说标题要长长长长长长长长长长长长长长长长长长长长,才有人回复 批量文件上传 高手请进,100分求解生成 清晰缩略图 的方法 tomcat不能解析jsp,请各位帮忙 jsp如何调用sql server存储过程 IIS + Resin 环境下的一个JSP运行问题! vbscript 调用javascript 函数出错??? Servlet和JSP中的中文显示问题初探 Spring MVC bean空值跪求高手指点啊! 如果通过javascript获取firefox下安装了哪些组件 用lucene实现检索时出错,各位请帮忙!
第一种方案:做判定,
如果是个位数,则前缀是A00000000
如果是两位数,则前缀是A0000000
如果是三位数,则前缀是A000000
如果是1000, 则前缀是A00000第2中方案:
将数字转化为字符串,判定长度,然后根据长度的差距来补0
String str = String.format("%09d", 100); System.out.println("A"+str)
String strInt = "";
for(int i = 1;i <= 1000;i++){
strInt = String.format("%09d", i);
System.out.println("A"+strInt);
}
select concat('a',lpad(编号,10,"1")) from 员工表。
要打印控制台的话,只需要查出来打印一下就行了。要更改的话下面这条:
update 员工表 set 编号=concat('a',lpad(编号,10,"1"));
List<String> list = new ArrayList<String>();
for(int i=1;i<=1000;i++) {
String s=i+"";
for(int j=0;j<9-s.length();j++) {
sb.append(0);
}
s="A"+sb.toString()+s;
list.add(s);
sb.delete(0, sb.length());
}
for(String s: list) {
System.out.println(s);
}
是什么表达式啊
* id 你需要传入的编号 可以任意的 八位以内 ,并不需要限制在 1- 1000
*/
public String getResult(String id){
String temp = "00000000" + id;
temp = temp.substring(temp.length()-9, temp.length());
return "A"+temp;
}
for(int i = 1;i <= 1000;i++){
System.out.println(String.format("A%09d", i));
}
String persionId="1";
int temp=Integer.parseInt(persionId);
for(temp=1;temp<=1000;temp++){
if(temp<10){//1
persionId="A00000000"+temp;
}else if(temp<100){//2
persionId="A0000000"+temp;
}else if(temp<1000){//3
persionId="A000000"+temp;
}else if(temp==1000){//4
persionId="A00000"+temp;
}
System.out.println("当前编号:"+persionId);
}
}
if(i<10){
System.out.println("A00000000"+i);
}if(i<100 && i>=10){
System.out.println("A0000000"+i);
}
if(i<1000 && i>=100){
System.out.println("A000000"+i);
}if(i==1000){
System.out.println("A00000"+i);
}
}
for(int i = 1;i <= 1000;i++){
System.out.println(String.format("A%09d", i));
}( ^_^ )不错嘛
for(int i=1; i<=1000; i++){
System.out.println(String.format("A%09d", i));
}不错的写法
for(int i=1;i<=1000;i++){
String Num = "A00000000";
String Str = (i > 999 ? Num.substring(0,6): i > 99 ? Num.substring(0,7) : i>9 ? Num.substring(0,8) : Num) + i;
System.out.println(Str);
}
int MyNum = 10000; //生成编号总数
int MyLength = 5; //生成编号的位数
String StrType = "0"; //默认不足位数填充符号
for(int i=1;i<=MyNum;i++){
String NumLength = "";
for(int j=0;j<MyLength-1-String.valueOf(i).length();j++){
NumLength+=StrType;
}
if(String.valueOf(i).length() > MyLength-1){ //如果生成编号位数大于规定位数则退出生成
return;
}
String Str = "A"+NumLength + i;
System.out.println(Str);
}
num=df.format( num);
String str="a"+num;
{
String first="A";
for(int i = 1 ;i <= 1000 ; i++)
{
String i1=i.toString();
if(i1.length==1)
{
String center="00000000";
System.out.println(first+center+i1);
}else if(i1.length==2)
{
String center="0000000";
System.out.println(first+center+i1);
}else if(i1.length==3)
{
String center="000000";
System.out.println(first+center+i1);
}else if(i1.length==4)
{
String center="00000";
System.out.println(first+center+i1);
}
}
}
如果是个位数,则前缀是A00000000
如果是两位数,则前缀是A0000000
如果是三位数,则前缀是A000000
如果是1000, 则前缀是A00000第2中方案:
将数字转化为字符串,判定长度,然后根据长度的差距来补0
for(int i = 1;i <= 1000;i++){
strInt = String.format("%09d", i);
System.out.println("A"+strInt);
}
这个比较易读易懂!
for(int i=1;i<1001;i++){
System.out.println(String.format("A%09d", i));
}
这个比较简洁!