簡體   English   中英

解析/分割字符串並將其上傳到數據庫

[英]Parse/Split a string and upload it into the database

我正在嘗試將字符串拆分/解析成幾個部分,然后將其正確上傳到數據庫中。

我有一個像這樣的字符串:

String CARDS =
        "e \"Water\"\n" +
        "n \"John\"\n" +
        "p \"Big\"\n" +
        "e \"Fire\"\n";

我想分開每一行,並有類似

 e
 "Water"
 n
 "John"

我設法做到這一點是這樣的:

      String delim = " \n\r\t,.;"; //insert here all delimitators
      StringTokenizer card = new StringTokenizer(CARDS,delim);
      while (card.hasMoreTokens()) {
          System.out.println(card.nextToken());
      }

我創建了一個名為card的小表,其中包含card_type和card_desc。 其中card_type是第一個字母,例如e,n等,然后card_desc將是Water,John等。

我也有一個insert方法:

public void insert() throws SQLException {
    Connection con = ListPlayers.myCon.get();
    String query = "INSERT INTO deck (card_type,card_desc) VALUES (?,?);";
    PreparedStatement ps = con.prepareStatement(query);
    ps.setString(1, card_type);
    ps.setString(2, card_desc);
    ps.executeUpdate();
    ps.close();
}

我只是不確定如何將分割后的字符串成功地分為卡類型和desc,然后將其上傳到數據庫。

您已經完成了困難的部分。 只需替換描述中的引號(“),然后調用您的方法即可插入數據。更新while循環。

while (card.hasMoreTokens()) {
    String card_type = card.nextToken();
    String card_desc = card.nextToken().replace("\"","");
    //you can call your insert method to insert the data
    // example insert(card_type,card_desc)
    System.out.println(card_type+"::"+card_desc);
}

我已經添加了打印內容以進行測試。

更新您的insert方法以傳遞參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM