我只想知道是否有更好的解決方案來從字符串中的字符解析數字(假設我們知道索引n處的字符是數字)。Java:從字符中解析int值
String element = "el5";
String s;
s = ""+element.charAt(2);
int x = Integer.parseInt(s);
//result: x = 5
(無用說,這只是一個例子)
我只想知道是否有更好的解決方案來從字符串中的字符解析數字(假設我們知道索引n處的字符是數字)。Java:從字符中解析int值
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५"
串工程時٥
和५
分別在東阿拉伯語和印地文/梵文數字5。
這可能是從性能上來看是最好的,但它的粗糙:
String element = "el5";
String s;
int x = element.charAt(2)-'0';
它的工作原理,如果你認爲你的性格是一個數字,只有在總使用Unicode,如Java語言...
嘗試用字符串`「el5」`,其中`5`是印度的數字5。 :) – 2011-02-11 11:22:14
我相信你很努力地找到這個例子...... :-)好吧,如果你必須解析非阿拉伯數字,避免這種方法。就像我說的那樣,它很粗糙。但它在99.999%的案例中仍然是最快的方法。 – 2011-02-11 11:26:37
嘗試以下操作:
str1="2345";
int x=str1.charAt(2)-'0';
//here x=4;
如果u成炭減去 '0',ASCII值需要不是被瞭解的。
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);
通過簡單地由炭減去 '0'(零)的燒焦(的數字 '0' 至 '9')可被轉化爲INT(0到9),例如, '5' - 「0 '給出int 5.
String str = "123";
int a=str.charAt(1)-'0';
太棒了!謝謝 – deFreitas 2018-01-29 17:16:32