web-dev-qa-db-fra.com

Comment puis-je obtenir le dernier caractère d'une chaîne?

Comment puis-je obtenir le dernier caractère d'une chaîne?

public class Main
{
    public static void main(String[] args) 
    {
        String s = "test string";
        //char lastChar = ???
    }   
}
165
lonesarah

Le code:

public class Test {
    public static void main(String args[]) {
        String string = args[0];
        System.out.println("last character: " +
                           string.substring(string.length() - 1)); 
    }
}

Le résultat:

last character: f
223
jcomeau_ictx

Voici une méthode utilisant String.charAt():

String str = "India";
System.out.println("last char = " + str.charAt(str.length() - 1));

Le résultat obtenu est last char = a.

90
Aniket

Les autres réponses contiennent beaucoup de texte et de code inutiles. Voici deux manières d'obtenir le dernier caractère d'une chaîne:

char

char lastChar = myString.charAt(myString.length() - 1);

Chaîne

String lastChar = myString.substring(myString.length() - 1);
23
Suragch

Les autres réponses sont très complètes et vous devez absolument les utiliser si vous essayez de trouver le dernier caractère d'une chaîne. Mais si vous essayez simplement d'utiliser un conditionnel (le dernier caractère "g", par exemple), vous pouvez également procéder comme suit:

if (str.endsWith("g")) {

ou des cordes

if (str.endsWith("bar")) {
20
Neil Chowdhury

Essaye ça:

if (s.charAt(0) == s.charAt(s.length() - 1))
5
Bala R

La solution simple est:

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);
}

Utiliser un tableau de caractères (méfiez-vous du vilain argument String ou null String!)

Une autre solution utilise StringBuilder (qui est généralement utilisé pour effectuer la manipulation de chaîne, car String est immuable.

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();
}

Une autre approche (plus pédagogique que réelle) est celle-ci:

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();
}

Ici, la chaîne complète est inversée et la partie qui ne doit pas être inversée est remplacée par la sous-chaîne. ;)

2
Yoko Zunna
String aString = "This will return the letter t";
System.out.println(aString.charAt(aString.length() - 1));

La sortie devrait être:

t

Bon codage!

2
user8705926
public String lastChars(String a) {
if(a.length()>=1{
String str1 =a.substring(b.length()-1);
}
return str1;
}
2
Abdul Hanan Khan
public char LastChar(String a){
    return a.charAt(a.length() - 1);
}
2
vijay pandey

Voici une méthode que j'utilise pour obtenir le dernier xx d'une chaîne:

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;
    }
}

Alors utilisez-le comme suit:

String testStr = "this is a test string";
String last1 = takeLast(testStr, 1); //Output: g
String last4 = takeLast(testStr, 4); //Output: ring
0
Pierre

Quelque chose de tableau:

s = 'some string'
s[-1]   # last char
0
Jaja