简体   繁体   中英

How do you Increment an Integer inside a While loop and convert it to 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.

the output goes like this:

1. ____________ - item 1

1. ____________ - item 2

1. ____________ - item 3

1. ____________ - item 4

I cannot understand why it is not incrementing the numbering. Can someone please help

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++;
}

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++;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM