我希望得到4位数的数字,即0到0000,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);
}
}
}
答案 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
j
从0
移至9999
。j
,将其格式化为四位数字符串...然后将结果抛弃。int
j
添加到str9
并将其提供给str10
。因为你没有保存String.format()
的结果,所以你没有得到你想要的东西。
你需要改为:
String str10 = str9 + String.format("%04d", j);
这会将格式化的String
添加到str9
并将其提供给str10
进一步说,你正在复制错误的代码:
j++;
str10 = str9 + j;
你需要重新安排你正在做的事情:你的query
字符串是否正确?应该有WHERE
还是什么?什么订单数据来自查询?你有很多问题要问自己,我们无法帮助你。