Usando DecimalFormat

8 respostas
J

Ola pessoal, estou com um problema, alguem pode me ajudar?

int i = 1203;

		DecimalFormat meuFormato = new DecimalFormat( "0000" );
		
		String hm = Integer.toHexString(i);
		

		String t26 = "" + hm.substring(0,2) + ":" + hm.substring(2,4);
		
		
		System.out.println("i = " + meuFormato.format(t26));

e me da esse erro

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4
	at java.lang.String.substring(Unknown Source)
	at Teste2.main(Teste2.java:17)

8 Respostas

C

Isso ocorreu porque você tá tentando dar um substring(0,4) em uma menor.

J

O hexa de 1203 é 4b3, ou seja, não tem o 4º caracter que você está tentando acessar…

E o format() tambem nao vai funcionar porque String não é numero…

J

vc diz que o certo seria (0,3) né?!?!
bom fiz isso, mas não funcionou

deu esse erro

Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Number
	at java.text.DecimalFormat.format(Unknown Source)
	at java.text.Format.format(Unknown Source)
	at Teste2.main(Teste2.java:18)
J

vc tem alguma ideia, de como eu posso fazer isso?

J

vc diz que o certo seria (0,3) né?!?!
bom fiz isso, mas não funcionou

deu esse erro

Esse erro é o que eu falei, String não é um java.lang.Number, não sei nem porque o format() recebe Object e não Number, assim daria um erro de compilação, mas…

O que você está tentando fazer?

C

Esse erro agora é o que o Jair falou…

J

eu tenho um aparelho que é conectado a minha porta serial…quero ler as horas do aparelho que é um int.
tenho q converter pra String pra aparecer meus 4 digitos na minha tela

J

Não seria só concatenar?

int h = 10;
int m = 5;
String str = "";
		
str += h<10?"0"+h:h;
str += ":";
str += m<10?"0"+m:m;
		
System.out.println(str);
Criado 19 de setembro de 2006
Ultima resposta 19 de set. de 2006
Respostas 8
Participantes 3