convert - Java: analizar el valor int de un char
convert int to char c# (5)
Intenta lo siguiente:
str1="2345";
int x=str1.charAt(2)-''0'';
//here x=4;
si u resta con el carácter ''0'', el valor ASCII no debe ser conocido.
Solo quiero saber si hay una mejor solución para analizar un número de un carácter en una cadena (asumiendo que sabemos que el carácter en el índice n es un número).
String element = "el5";
String s;
s = ""+element.charAt(2);
int x = Integer.parseInt(s);
//result: x = 5
(Inútil decir que es solo un ejemplo)
Probablemente sea el mejor desde el punto de vista del rendimiento, pero es difícil:
String element = "el5";
String s;
int x = element.charAt(2)-''0'';
Funciona si asumes que tu personaje es un dígito, y solo en idiomas que siempre usan Unicode, como Java ...
Pruebe Character.getNumericValue(char)
.
String element = "el5";
int x = Character.getNumericValue(element.charAt(2));
System.out.println("x=" + x);
produce:
x=5
Lo bueno de getNumericValue(char)
es que también funciona con cadenas como "el٥"
y "el५"
donde ٥
y ५
son los dígitos 5 en árabe oriental e hindi / sánscrito, respectivamente.
Simplemente restando con el carácter ''0'' (cero), un carácter (del dígito ''0'' a ''9'') se puede convertir en int (0 a 9), por ejemplo, ''5'' - ''0'' da 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);