gpt4 book ai didi

java - 如何修复 NumberFormatException?

转载 作者:行者123 更新时间:2023-12-01 19:43:50 25 4
gpt4 key购买 nike

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String selectQueryForPatient = "SELECT registration_id, dob FROM patient_registration WHERE registration_id IN(SELECT max(registration_id)FROM patient_registration)";

String insertQuery = "INSERT INTO patient_master_info(patient_id) VALUES (?);";
String id = null;
String dob = null;
int generatedID = 0;
try {
pst = con.prepareStatement(selectQueryForPatient);
rs = pst.executeQuery();
while(rs.next()){
id = Integer.toString(rs.getInt(1));
dob = rs.getString(2);
System.out.println("Id : "+id+" "+"DOB: "+dob);
Date dt = sdf.parse(dob);
dob = sdf.format(dt);
String result = id.concat(dob);
generatedID = Integer.parseInt(result);
}

pst = con.prepareStatement(insertQuery);
pst.setInt(1, generatedID);
pst.execute();
} catch(Exception e) {
e.printStackTrace();
}

对于输入字符串:“12919851203”我得到了java.lang.NumberFormatExceptionException。我该如何修复它?

error trace `

最佳答案

我不知道你想做什么,但你的问题是,将日期附加到整数值的结果很容易超出整数范围。

例如,令 id 为“30”,dob(从数据库中读取)为“20190123”。 id.concat(dob) 的结果是“3020190123”,它大于 int 的最大值“2147483647”。

您的样本值 12919851203 甚至更大(几乎 130 亿,而 Integer.MAX_VALUE 约为 20 亿)。

<小时/>

如果值必须像数字一样可排序(其中 2 < 10),那么您可以将数据类型更改为 longBigInteger

如果排序无关紧要(即“2”大于“10”是可以的),那么您甚至可以将 result 存储为 String (存储到VARCHAR 列)。

或者您可以解释一下您想要解决什么问题,以便我们找到更好的方法来解决问题。

关于java - 如何修复 NumberFormatException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54340233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com