¿Cómo obtengo el último carácter de una cadena?
public class Main
{
public static void main(String[] args)
{
String s = "test string";
//char lastChar = ???
}
}
¿Cómo obtengo el último carácter de una cadena?
public class Main
{
public static void main(String[] args)
{
String s = "test string";
//char lastChar = ???
}
}
Respuestas:
El código:
public class Test {
public static void main(String args[]) {
String string = args[0];
System.out.println("last character: " +
string.substring(string.length() - 1));
}
}
La salida de java Test abcdef
:
last character: f
charAt()
nosubstring()
Aquí hay un método que usa String.charAt()
:
String str = "India";
System.out.println("last char = " + str.charAt(str.length() - 1));
El resultado resultante es last char = a
.
Las otras respuestas son muy completas, y definitivamente debes usarlas si estás tratando de encontrar el último carácter de una cadena. Pero si solo está tratando de usar un condicional (por ejemplo, es el último carácter 'g'), también puede hacer lo siguiente:
if (str.endsWith("g")) {
o cadenas
if (str.endsWith("bar")) {
La solución simple es:
public String frontBack(String str) {
if (str == null || str.length() == 0) {
return str;
}
char[] cs = str.toCharArray();
char first = cs[0];
cs[0] = cs[cs.length -1];
cs[cs.length -1] = first;
return new String(cs);
}
Usando una matriz de caracteres (¡cuidado con el desagradable String vacío o el argumento String nulo!)
Otra solución usa StringBuilder (que generalmente se usa para realizar la manupilación de String ya que String es inmutable.
public String frontBack(String str) {
if (str == null || str.length() == 0) {
return str;
}
StringBuilder sb = new StringBuilder(str);
char first = sb.charAt(0);
sb.setCharAt(0, sb.charAt(sb.length()-1));
sb.setCharAt(sb.length()-1, first);
return sb.toString();
}
Otro enfoque (más para la instrucción que el uso real) es este:
public String frontBack(String str) {
if (str == null || str.length() < 2) {
return str;
}
StringBuilder sb = new StringBuilder(str);
String sub = sb.substring(1, sb.length() -1);
return sb.reverse().replace(1, sb.length() -1, sub).toString();
}
Aquí la cadena completa se invierte y luego la parte que no se debe invertir se reemplaza con la subcadena. ;)
public String lastChars(String a) {
if(a.length()>=1{
String str1 =a.substring(b.length()-1);
}
return str1;
}
public char LastChar(String a){
return a.charAt(a.length() - 1);
}
String aString = "This will return the letter t";
System.out.println(aString.charAt(aString.length() - 1));
La salida debe ser:
t
¡Feliz codificación!
Aquí hay un método que uso para obtener el último xx de una cadena:
public static String takeLast(String value, int count) {
if (value == null || value.trim().length() == 0) return "";
if (count < 1) return "";
if (value.length() > count) {
return value.substring(value.length() - count);
} else {
return value;
}
}
Luego úsalo así:
String testStr = "this is a test string";
String last1 = takeLast(testStr, 1); //Output: g
String last4 = takeLast(testStr, 4); //Output: ring
str.charAt(str.length() - 1)
suele ser el último carácter de la cadena; pero considere lo que sucede si str está vacío o es nulo.