繁体   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