java 相关问题,编程题,如下,这是面试题!!有谁会写得出?
要求编一个程序,在控制台输入两次字符,再输入生成的个数。无论输入多少长,总长度固定是12个字符,例如,我第一次输入ABC,回车后,再输入DEF,再输入10回车,那么,产生...
要求编一个程序,在控制台输入两次字符,再输入生成的个数。无论输入多少长,总长度固定是12个字符,例如,我第一次输入ABC,回车后,再输入DEF,再输入10回车,那么,产生的新字符串,一定要有ABCDEF,ABC、DEF必须得是连续的,在ABCDEF后补6个字符,因为固定长度是12,所以补6个字符,新产生的字符串,不能有重复的,而且是10个这样连续的新字符。如果我第一次输入A,第二次输入B,再输入1000,那么,就补10个字符了。最好补0,必须得连续的,补的字符,要求是数字。如AB00000000001,AB00000000002,AB00000000003,AB00000000004……AB0000001000。
这是面试题!!有谁会写得出? 展开
这是面试题!!有谁会写得出? 展开
展开全部
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class F {
public static final int LENGTH = 12;
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("请输入第一串字符");
String first = reader.readLine();
System.out.println("请输入第二串字符");
String second = reader.readLine();
System.out.println("请输入个数");
int num = Integer.valueOf(reader.readLine());
String tempHead = first + second;
int xLength = LENGTH - tempHead.length();
for (int i = 1; i <= num; i++) {
String temp = Integer.toString(i);
while (temp.length() < xLength) {
temp = "0" + temp;
}
System.out.println(tempHead + temp);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
没有对输入的正确性校验,自己加下吧。
展开全部
接收完输入,先把两次输入的字符串拼接,然后计算长度,看需要补多少位。
补的就比较简单了,有两种情况
1、比如需要补2位,但你要生成1000个字符串,这时候用数字补就不够了,需要用字符,从a开始排,像拍车牌号一样。
2、比如需要补10位,但只让你生成10个字符串,这时候直接数字从尾端开始补就行。
这个过程每次都要判断一下,避免和输入的字符串有重复。
总体来讲这个题就是看上去复杂,实际比较简单
补的就比较简单了,有两种情况
1、比如需要补2位,但你要生成1000个字符串,这时候用数字补就不够了,需要用字符,从a开始排,像拍车牌号一样。
2、比如需要补10位,但只让你生成10个字符串,这时候直接数字从尾端开始补就行。
这个过程每次都要判断一下,避免和输入的字符串有重复。
总体来讲这个题就是看上去复杂,实际比较简单
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public static void main(String[] args) {
String a="abc",b="def",d=a+b;
int c=100;
int e=12-d.length();
for(int f=0;f<e;f++){
d+="0";
}
for (int i=0;i<c;i++){
String g=d.substring(0,12-(i+"").length());
System.out.println(g+i);
}
}
String a="abc",b="def",d=a+b;
int c=100;
int e=12-d.length();
for(int f=0;f<e;f++){
d+="0";
}
for (int i=0;i<c;i++){
String g=d.substring(0,12-(i+"").length());
System.out.println(g+i);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个问题不全面,呢如果两次输入的字符正好是12个字符,或超出12个字符你想怎么处理?还有如果你输入的数字是1000,而我的字符合并后可能是11,呢你的数字1000合并后也超出了12呢你想怎么处理!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询