Olá pessoal, como faço pra pegar o último caracter de uma String cujo valor nunca seria fixo?
Eu fiz um código onde consigo o resultado, já pesquisei e não consegui manipular um método que me permita fazer isso diretamente.
Na verdade, eu gostaria de fazer um código mais profissional e elegante.
Vejam o que fiz.
nomeString //recebido como parâmetro
int tamanho = nomeString.length();
String valor = nomeString.substring(tamanho-1, tamanho);
System.out.println("Último caracter da String: " + valor);
O indicado é isolar o seu código (que está OK) em um método estático, e tomar cuidado (nesse método com o caso em que a string de entrada é vazia (nesse caso, você vai tentar pegar length - 1 que vai dar -1, e vai tomar um StringIndexOutOfBounds.) Portanto, você tem de fazer um “if” também.
public static char ultimoChar(String s) {
char r = (char) 0;
for (char c : s.toCharArray()) {
r = c;
}
return r;
}
Método português 2:
public static char ultimoChar(String s) {
char r = (char) 0;
int i = 0;
do {
try {
r = s.charAt(i++);
} catch (IndexOutOfBoundsException e) {
return r;
}
} while (true);
}
Obrigado pelas dicas galera,
na verdade, eu havia tentado o que o alves.Felipe indicou, mas estava dando erro, pois eu havia colocado dentro de um if, e achei que não funcionava sem olhar o porquê do erro, pois a função retorna um caracter ao invés de um tipo booleano.
if(nomePacote.charAt(nomePacote.length()-1));Type mismatch: cannot convert from char to boolean