我正在尝试将字符串拆分/解析成几个部分,然后将其正确上传到数据库中。
我有一个像这样的字符串:
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等。
我也有一个插入方法:
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,然后将其上传到数据库中。
答案 0 :(得分:0)
您已经完成了困难的部分。只需替换描述中的引号(“),然后调用您的方法即可插入数据。 更新您的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方法以传递参数。