如何将字符串转换为Java中的数字?
问题描述:
我有作为字符串如何将字符串转换为Java中的数字?
String Dept_ID[] = request.getParameterValues("dept_id"))
在JSP
获得的参数。我必须在字符串中插入类型为数字的db
@DEPT_ID NUMERIC(10,0)).
如何执行转换?
答
您的代码正在接收字符串的数组。您可以根据需要使用Integer.parseInt
或Long.parseLong
将数组中的条目转换为数字。
例如:
String Dept_ID[] = request.getParameterValues("dept_id"));
int[] ids = null;
if (Dept_ID != null) {
ids = new int[Dept_ID.length];
for (int index = 0; index < Dept_ID.length; ++index) {
ids[index] = Integer.parseInt(Dept_ID[index]);
}
}
如果数使用不同的基数(基数)超过10,则可以提供的基数作为第二ARG(详见链接)。
答
上面的回答是正确的,但它没有考虑到当您将字母作为输入无法转换时发生的情况。如果你问我,你想使用一个尝试和捕捉方法。
喜欢的东西(假设你使用上面的代码):
String Dept_ID[] = request.getParameterValues("dept_id"));
int[] ids = null;
if (Dept_ID != null) {
ids = new int[Dept_ID.length];
for (int index = 0; index < Dept_ID.length; index++) {
try {
ids[index] = Integer.parseInt(Dept_ID[index]);
}
catch (NumberFormatException e) {
System.out.println("Invalid crap.");
}
}
}
还要注意,我把++索引部分周围的其他方法,以指数++,如果你不这样做,你将继续失踪数组中的第一个索引。
我做了完全一样的事情,你在代码中键入,但它抛出一个异常: - 错误将数据类型nvarchar转换为数字。 – rams 2013-03-16 10:34:55
@rams:你展示的代码不应该做那样的事情。 ['ServletRequest#getParameterValues'](http://docs.oracle.com/javaee/5/api/javax/servlet/ServletRequest.html#getParameterValues(java.lang.String))与数据库没有任何关系。 (如果'request'不是'ServletRequest'或它的一个子类,你真的**需要说,因为这是我们可以做的唯一合理的假设。) – 2013-03-16 10:39:16