Substring

Boas pessoal,

Alguem me pode dizer como faço para imprimir apenas os dois ultimos caracteres de uma string ?

Tenho uma string por exemplo que venha assim : 12345678912

e eu gostaria de imprimir apenas os dois ultimos : 12

O meu maior problema é que a string por vezes vem com tamanhos diferentes. Poderra vir assim : 4444478

E neste caso tenho de imprimir apenas os dois ultimos : 78

Algume tem uma ideia ?

[code] public static void main(String[] arg){
System.out.println(pegaDoisUltimos(“ABCDE”));
}

public static String pegaDoisUltimos(String texto){
	if (texto.length() < 2){
		return "";
	}
	
	return texto.substring(texto.length() - 2, texto.length());
}

[/code]

isso te ajuda? :smiley:

[quote=LuisClaudio]Boas pessoal,

Alguem me pode dizer como faço para imprimir apenas os dois ultimos caracteres de uma string ?

Tenho uma string por exemplo que venha assim : 12345678912

e eu gostaria de imprimir apenas os dois ultimos : 12

O meu maior problema é que a string por vezes vem com tamanhos diferentes. Poderra vir assim : 4444478

E neste caso tenho de imprimir apenas os dois ultimos : 78

Algume tem uma ideia ?[/quote]

public static void main(String[] args) {
	String nro = JOptionPane.showInputDialog("Informe um nro");
	nro = nro.substring(nro.length() - 2);
	System.out.println(nro);
}

Se você tem só um número, e não uma String, há também uma forma matemática de fazer isso:

public int doisUltimos(int numero) {
   int numero = 19281982198;

   if (numero &lt; 10)
      return numero;

   return (numero % 100);
}

Essa função funciona para números positivos. Não deve ser difícil adapta-la para funcionar com negativos também.

Atualizei a função lá em cima. Devia estar dormindo quando escrevi a primeira fórmula (que também funcionava).

Adaptando a função do Vini para aceitar também números negativos:


public int doisUltimos(int numero) {  
		   if (Math.abs(numero) < 10)  
		      return numero;  
		  
		   return (numero % 100);  
		}