在0000-9999之间的顺序计数

时间:2016-06-16 10:02:50

标签: java

我希望得到4位数的数字,即0到00​​00,1为0001,2为0002到9999。

我正在尝试以下代码,但它不起作用。如果有人能提供帮助就会很好。

    public void actionPerformed(ActionEvent ae) {
    String str = ae.getActionCommand();
    if (str.equals("GENERATE PART NO. :")) {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:mysql://localhost/d03", "root", "");
            st = con.createStatement();

            String s = "select value from part where mix='" + jc.getSelectedItem() + "'";

            rs = st.executeQuery(s);
            t1.getText();
            if (rs.next()) {

                String add1 = rs.getString("value");
                t1.setEditable(false);

                String str9 = "EP" + add1;

                for (j = 0; j <= 9999; j++) {

                    String.format("%04d", j);
                    String str10 = str9 + j;
                    String query = "select MC from final";
                    ResultSet rs1 = st.executeQuery(query);
                    while (rs1.next()) {
                        while (str10.equals(rs1.getString("MC"))) {
                            j++;

                            str10 = str9 + j;
                        }
                        t1.setText(str10);
                    }
                }
            }

3 个答案:

答案 0 :(得分:4)

String.format("%04d", j);执行您想要的操作,但您需要使用format()方法的结果。目前您只是丢弃了返回值。

...
for (int j = 0; j <= 9999; j++) {
    String str = String.format("%04d", j);
    System.err.println(str);
}
...

输出:

0000
0001
0002
0003
...

答案 1 :(得分:1)

你想做的就是这样:

for (;str10.equals(rs1.getString("MC"));j++) {
    str10 = String.format("%s%04d", str9, j);
}

答案 2 :(得分:0)

您的问题如下:

for (j = 0; j <= 9999; j++) {
    String.format("%04d", j);
    String str10 = str9 + j;
  • 第一行将int j0移至9999
  • 第二行占用j,将其格式化为四位数字符串...然后将结果抛弃。
  • 第三行将int j添加到str9并将其提供给str10

因为你没有保存String.format()的结果,所以你没有得到你想要的东西。

你需要改为:

String str10 = str9 + String.format("%04d", j);

这会将格式化的String添加到str9并将其提供给str10

进一步说,你正在复制错误的代码:

j++;
str10 = str9 + j;

你需要重新安排你正在做的事情:你的query字符串是否正确?应该有WHERE还是什么?什么订单数据来自查询?你有很多问题要问自己,我们无法帮助你。