如何在While循环内增加一个整数并将其转换为String?

StyledDocument doc = txtpaneExamGeneration.getStyledDocument();

    Connection con = null;
    Statement stmt = null;
    try {
        Class.forName("org.sqlite.JDBC");
        con = DriverManager.getConnection("jdbc:sqlite:sql_items.sqlite");
        stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT item_desc FROM active_items ORDER BY random();");

        while(rs.next()){
            int num = 1;
            String itemNumbering = Integer.toString(num);
            String stringHandler = rs.getString("item_desc");
            doc.insertString(doc.getLength(), Integer.toString(num) + ". _______________ - " , null);
            doc.insertString(doc.getLength(), stringHandler + ".\n\n", null);
            num++;
        }
    } catch (ClassNotFoundException | SQLException e) {
        System.out.println(e);
    } catch (BadLocationException ex) {
        Logger.getLogger(generateExam.class.getName()).log(Level.SEVERE, null, ex);
    }

The objective of the program is to append and display the contents of a database to a JTextPane. I want to list them with incrementing numbering by declaring an integer inside the while loop and then convert that to string and then increment it for the next iteration of the loop.

输出如下:

1. ____________ - item 1

1. ____________ - item 2

1. ____________ - item 3

1. ____________ - item 4

我不明白为什么它没有增加编号。有人可以帮忙吗

评论
  • 24K纯贱
    24K纯贱 回复

    Move num outside the while loop.

    int num = 1;
    while(rs.next()){
        String itemNumbering = Integer.toString(num);
        String stringHandler = rs.getString("item_desc");
        doc.insertString(doc.getLength(), Integer.toString(num) + ". _______________ - " , null);
        doc.insertString(doc.getLength(), stringHandler + ".\n\n", null);
        num++;
    }
    
  • 求败
    求败 回复

    You are recreating the variable and assign it to 1 at each iteration int num = 1;. You have to create it outside of the while loop scope

    int num = 1;
    while(rs.next()){
        String itemNumbering = Integer.toString(num);
        String stringHandler = rs.getString("item_desc");
        doc.insertString(doc.getLength(), Integer.toString(num)+". _______________ - ",null);
        doc.insertString(doc.getLength(), stringHandler + ".\n\n", null);
        num++;
    }