Java:从char中parsingint值

我只想知道是否有更好的解决scheme来parsingstring中的数字(假设我们知道索引n处的字符是数字)。

String element = "el5"; String s; s = ""+element.charAt(2); int x = Integer.parseInt(s); //result: x = 5 

(无用的说,这只是一个例子)

尝试Character.getNumericValue(char) 。

 String element = "el5"; int x = Character.getNumericValue(element.charAt(2)); System.out.println("x=" + x); 

生产:

 x=5 

getNumericValue(char) "el٥"在于,它也适用于"el٥""el५"这样的string,其中٥分别是东阿拉伯文和印度文/梵文中的数字5。

尝试以下操作:

 str1="2345"; int x=str1.charAt(2)-'0'; //here x=4; 

如果你用char'0'减去,ASCII值不需要知道。

从性能angular度来看,这可能是最好的,但是很粗糙:

 String element = "el5"; String s; int x = element.charAt(2)-'0'; 

如果你认为你的angular色是一个数字,并且只有在使用Unicode的语言中才有效,例如Java …

通过简单地用char'0'(零)减去char(数字'0'到'9')可以被转换成int(0到9),例如'5' – '0'给出int 5。

 String str = "123"; int a=str.charAt(1)-'0'; 
 String a = "jklmn489pjro635ops"; int sum = 0; String num = ""; boolean notFirst = false; for (char c : a.toCharArray()) { if (Character.isDigit(c)) { sum = sum + Character.getNumericValue(c); System.out.print((notFirst? " + " : "") + c); notFirst = true; } } System.out.println(" = " + sum);