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。
这是面试题!!有谁会写得出?
展开
 我来答
william566
2013-07-12 · 超过14用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:37.8万
展开全部
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();
        }
    }
}

没有对输入的正确性校验,自己加下吧。

幽冥神者
2013-07-12 · TA获得超过3213个赞
知道大有可为答主
回答量:1953
采纳率:50%
帮助的人:1762万
展开全部
接收完输入,先把两次输入的字符串拼接,然后计算长度,看需要补多少位。
补的就比较简单了,有两种情况
1、比如需要补2位,但你要生成1000个字符串,这时候用数字补就不够了,需要用字符,从a开始排,像拍车牌号一样。

2、比如需要补10位,但只让你生成10个字符串,这时候直接数字从尾端开始补就行。
这个过程每次都要判断一下,避免和输入的字符串有重复。
总体来讲这个题就是看上去复杂,实际比较简单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniapplYzNIXWfOwlmc
2013-07-12
知道答主
回答量:50
采纳率:0%
帮助的人:9.7万
展开全部
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);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
NiceBabyLuckys
2013-07-12 · TA获得超过167个赞
知道小有建树答主
回答量:257
采纳率:100%
帮助的人:40.7万
展开全部
你这个问题不全面,呢如果两次输入的字符正好是12个字符,或超出12个字符你想怎么处理?还有如果你输入的数字是1000,而我的字符合并后可能是11,呢你的数字1000合并后也超出了12呢你想怎么处理!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式