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);