isso não é uma duplicata, como mencionado acima. Esta não é a conversão de número inteiro, mas a partir de carvão (ASCII)
Chathuranga Chandrasekara
11
Não uma duplicata "? Como converter de int para String" ... de qualquer maneira, FWIW, ASCII é de apenas 7-bits com valores [0, 127] ;-)
1
@phooji Eu acho que esse post sais como converter 1 -> "1" etc ''
Belgi 8/10
1
@pst - é estendida ASII ;-)
Belgi
3
@Belgi - você precisará declarar explicitamente sua codificação se desejar transcodificar corretamente os valores 128-255. O termo "ASCII estendido" não é significativo.
Para MIDP 2 / 1,1 CLCA baseado plataformas (que não têm Character.toString(char), stackoverflow.com/a/6210938/923560 fornece soluções adicionais.
Abdull
Qual o motivo da (char)designação? Em outras palavras, por que não posso simplesmente colocar Character.toString(i);? (Java noob)
Adam Hughes
1
Observe que isso não funcionará para o Integertipo, você receberá o erro "java.lang.Integer não pode ser convertido para java.lang.Character". Adicione um elenco ao intprimeiro, por exemplo: Character.toString((char)(int)myInteger);
gbmhunter
1
Os ivalores (0-255) seriam do conjunto de caracteres ISO-8859-1. (O autor da questão pergunta se recusou a identificar quais "ASCII estendido" [termo vago] foi queria, exceto aceitando esta resposta.)
Supondo que o número inteiro esteja, como você diz, entre 0 e 255, você receberá uma matriz com um único caractere Character.toChars, que se tornará uma cadeia de caracteres únicos quando transmitida para String.valueOf.
O uso Character.toCharsé preferível a métodos que envolvem uma conversão de intpara char( (char) ipor exemplo) por vários motivos, incluindo que Character.toCharslançará um IllegalArgumentExceptionse você não conseguir validar corretamente o número inteiro enquanto a conversão engolirá o erro (conforme a especificação de conversões primitivas ), potencialmente fornecendo uma saída diferente da que você pretendia.
Supondo que o número inteiro esteja no intervalo de 0 a 255 (como você declara ... e como a pergunta especifica), é desnecessário e subótimo de usar toChars.
Stephen C
5
Você está completamente correto de que algo assim Character.toString((char) i)é mais rápido que String.valueOf(Character.toChars(i)). A execução de uma referência rápida de conversão de 1.000.000 de números inteiros aleatórios no intervalo especificado (100 vezes, para ser seguro) em minha máquina fornece um tempo médio de 153,07 nanossegundos contra 862,39 nanossegundos. No entanto, em qualquer aplicativo interessante, haverá coisas muito mais importantes para otimizar. O valor agregado do manuseio seguro e determinístico e a facilidade de expansão fora da faixa [0,255], caso necessário, superam o menor impacto no desempenho.
Respostas:
Character.toString ((char) i);
fonte
Character.toString(char)
, stackoverflow.com/a/6210938/923560 fornece soluções adicionais.(char)
designação? Em outras palavras, por que não posso simplesmente colocarCharacter.toString(i);
? (Java noob)Integer
tipo, você receberá o erro "java.lang.Integer não pode ser convertido para java.lang.Character". Adicione um elenco aoint
primeiro, por exemplo:Character.toString((char)(int)myInteger);
i
valores (0-255) seriam do conjunto de caracteres ISO-8859-1. (O autor da questão pergunta se recusou a identificar quais "ASCII estendido" [termo vago] foi queria, exceto aceitando esta resposta.)System.out.println((char)65);
imprimiria "A"fonte
(char) 65
para descobrir qual personagem é.String.valueOf
(
Character.toChars(int)
)
Supondo que o número inteiro esteja, como você diz, entre 0 e 255, você receberá uma matriz com um único caractere
Character.toChars
, que se tornará uma cadeia de caracteres únicos quando transmitida paraString.valueOf
.O uso
Character.toChars
é preferível a métodos que envolvem uma conversão deint
parachar
((char) i
por exemplo) por vários motivos, incluindo queCharacter.toChars
lançará umIllegalArgumentException
se você não conseguir validar corretamente o número inteiro enquanto a conversão engolirá o erro (conforme a especificação de conversões primitivas ), potencialmente fornecendo uma saída diferente da que você pretendia.fonte
toChars
.Character.toString((char) i)
é mais rápido queString.valueOf(Character.toChars(i))
. A execução de uma referência rápida de conversão de 1.000.000 de números inteiros aleatórios no intervalo especificado (100 vezes, para ser seguro) em minha máquina fornece um tempo médio de 153,07 nanossegundos contra 862,39 nanossegundos. No entanto, em qualquer aplicativo interessante, haverá coisas muito mais importantes para otimizar. O valor agregado do manuseio seguro e determinístico e a facilidade de expansão fora da faixa [0,255], caso necessário, superam o menor impacto no desempenho.é uma solução simples
fonte
Você terminará com uma sequência de comprimento um, cujo caractere único possui o código (ASCII) 65. Em Java, chars são tipos de dados numéricos.
fonte
Pode-se iterar de a a z como este
fonte
Uma maneira mais fácil de fazer o mesmo:
Digite converter inteiro para caractere,
int n
seja o inteiro e, em seguida:fonte
fonte
Por que não simplificá-lo para um método que retorna o caractere ascii?
fonte
Este é um exemplo, que mostra que, ao converter um int em char, é possível determinar o caractere correspondente em um código ASCII.
fonte
resposta superior apenas perto de resolver o problema. aqui está sua resposta:
Código inteiro (Character.toString (char c));
fonte