esto no es un duplicado como se mencionó anteriormente. Esto no es conversión de entero sino de char (ascii)
Chathuranga Chandrasekara
11
No es un duplicado de "¿Cómo convertir de int a String?" ... de todos modos, FWIW, ASCII es solo de 7 bits con valores [0, 127] ;-)
1
@phooji Creo que esa publicación dice cómo convertir 1 -> "1", etc. '
Belgi
1
@pst - se extiende ASII ;-)
Belgi
3
@Belgi: deberá indicar explícitamente su codificación si desea transcodificar correctamente los valores 128-255. El término "ASCII extendido" no tiene sentido.
Para plataformas basadas en MIDP 2 / CLDC 1.1 (que no tienen Character.toString(char), stackoverflow.com/a/6210938/923560 proporciona soluciones adicionales.)
Abdull
¿Cuál es el motivo de la (char)designación? En otras palabras, ¿por qué no puedo simplemente poner Character.toString(i);? (Novato de Java)
Adam Hughes
1
Tenga en cuenta que esto no funcionará para el Integertipo, obtendrá un error "java.lang.Integer no se puede convertir en java.lang.Character". Agregue un elenco al intprimero, por ejemplo: Character.toString((char)(int)myInteger);
gbmhunter
1
Los ivalores (0-255) serían del conjunto de caracteres ISO-8859-1. (El autor de la pregunta no quiso identificar qué "ASCII extendido" [término vago] era deseado, excepto al aceptar esta respuesta.)
Suponiendo que el entero esté, como usted dice, entre 0 y 255, obtendrá una matriz con un solo carácter Character.toChars, que se convertirá en una cadena de un solo carácter cuando se pase aString.valueOf .
El uso Character.toCharses preferible a los métodos que involucran una conversión de inta char(es decir (char) i) por una serie de razones, incluida la que Character.toCharsarrojará un IllegalArgumentExceptionerror si no valida correctamente el entero mientras que la conversión se tragará el error (según la especificación de conversiones primitivas de estrechamiento ), lo que podría dar una salida diferente a la que pretendía.
Suponiendo que el número entero está en el rango de 0 a 255 (como usted dice que lo hace ... y como lo especifica la pregunta), es innecesario y subóptimo de usar toChars.
Stephen C
55
Tienes toda la razón de que algo así Character.toString((char) i)es más rápido que String.valueOf(Character.toChars(i)). Ejecutar un punto de referencia rápido para convertir 1,000,000 enteros aleatorios en el rango dado (100 veces, para estar seguro) en mi máquina da un tiempo promedio de 153.07 nanosegundos frente a 862.39 nanosegundos. Sin embargo, en cualquier aplicación interesante, habrá cosas mucho más importantes para optimizar. El valor agregado del manejo seguro y determinista y la facilidad de expansión fuera del rango [0,255] en caso de que sea necesario supera el impacto de rendimiento menor.
Respuestas:
Character.toString ((char) i);
fuente
Character.toString(char)
, stackoverflow.com/a/6210938/923560 proporciona soluciones adicionales.)(char)
designación? En otras palabras, ¿por qué no puedo simplemente ponerCharacter.toString(i);
? (Novato de Java)Integer
tipo, obtendrá un error "java.lang.Integer no se puede convertir en java.lang.Character". Agregue un elenco alint
primero, por ejemplo:Character.toString((char)(int)myInteger);
i
valores (0-255) serían del conjunto de caracteres ISO-8859-1. (El autor de la pregunta no quiso identificar qué "ASCII extendido" [término vago] era deseado, excepto al aceptar esta respuesta.)System.out.println((char)65);
imprimiría "A"fuente
(char) 65
para averiguar qué personaje es.String.valueOf
(
Character.toChars(int)
)
Suponiendo que el entero esté, como usted dice, entre 0 y 255, obtendrá una matriz con un solo carácter
Character.toChars
, que se convertirá en una cadena de un solo carácter cuando se pase aString.valueOf
.El uso
Character.toChars
es preferible a los métodos que involucran una conversión deint
achar
(es decir(char) i
) por una serie de razones, incluida la queCharacter.toChars
arrojará unIllegalArgumentException
error si no valida correctamente el entero mientras que la conversión se tragará el error (según la especificación de conversiones primitivas de estrechamiento ), lo que podría dar una salida diferente a la que pretendía.fuente
toChars
.Character.toString((char) i)
es más rápido queString.valueOf(Character.toChars(i))
. Ejecutar un punto de referencia rápido para convertir 1,000,000 enteros aleatorios en el rango dado (100 veces, para estar seguro) en mi máquina da un tiempo promedio de 153.07 nanosegundos frente a 862.39 nanosegundos. Sin embargo, en cualquier aplicación interesante, habrá cosas mucho más importantes para optimizar. El valor agregado del manejo seguro y determinista y la facilidad de expansión fuera del rango [0,255] en caso de que sea necesario supera el impacto de rendimiento menor.es una solucion simple
fuente
Terminará con una cadena de longitud uno, cuyo carácter único tiene el código (ASCII) 65. En Java, los caracteres son tipos de datos numéricos.
fuente
Uno puede iterar de la A a la Z así
fuente
Una forma más fácil de hacer lo mismo:
Escriba cast integer to character,
int n
sea el entero, luego:fuente
fuente
¿Por qué no simplificarlo a un método que devuelve el carácter ascii?
fuente
Este es un ejemplo, que muestra que al convertir un int a char, se puede determinar el carácter correspondiente a un código ASCII.
fuente
respuesta superior solo cerca de resolver el problema. Heres su respuesta:
Integer.decode (Character.toString (char c));
fuente