如何将字符串转换为Java中的数字?

问题描述:

我有作为字符串如何将字符串转换为Java中的数字?

String Dept_ID[] = request.getParameterValues("dept_id")) 
在JSP

获得的参数。我必须在字符串中插入类型为数字的db

@DEPT_ID NUMERIC(10,0)). 

如何执行转换?

您的代码正在接收字符串的数组。您可以根据需要使用Integer.parseIntLong.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(详见链接)。

+0

我做了完全一样的事情,你在代码中键入,但它抛出一个异常: - 错误将数据类型nvarchar转换为数字。 – rams 2013-03-16 10:34:55

+0

@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

上面的回答是正确的,但它没有考虑到当您将字母作为输入无法转换时发生的情况。如果你问我,你想使用一个尝试和捕捉方法。

喜欢的东西(假设你使用上面的代码):

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."); 
     } 
    } 
} 

还要注意,我把++索引部分周围的其他方法,以指数++,如果你不这样做,你将继续失踪数组中的第一个索引。