223 votes

Comment obtenez-vous le dernier caractère d'une chaîne?

J'ai essayé d'obtenir le dernier caractère d'une chaîne mais rien ne fonctionne à l'exception de charAt(strLength - 1) . Je dois déclarer une variable statique et convertir mon tableau en une seule. Lone story short ça ne marche pas pour moi pour une raison quelconque:

 /**
* Note that Java console applications need to be run through the java runtime
* by running "java -jar JarFile.jar" in the command line.
* Java console applications can not be previewed in the Compilr IDE, only applets can.
*/
public class isPalindrome
{

    public static boolean status = true;

    static String word;
    static int strLength = word.length();

    public void setword(String word)
    {

        isPalindrome.word = word;

    }   
    public String[] getWord()
    {
        String[] word = new String[] {"Nothign", "super"};
        return word;
    }

    /**
    * This is the main entry point for the application
    * @return 
    */
    public static void main(String[] args) 
    {
        if (status == false )
        {
            System.out.println("You didn't entered a Palindrome");
        }
        else 
        {
            System.out.println("You entered a Palindrome" + get.word);
        }

    }   

    public static void isValidEmpNum(String[] array, String s)
    {

        if(s.charAt(0) == s.charAt(strLength - 1))
            status = true;
        else
            status = false;

        return;

    }
}
 

292voto

jcomeau_ictx Points 15736

Le code:

 jcomeau@intrepid:/tmp$ cat test.java
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:

 jcomeau@intrepid:/tmp$ java test abcdef
last character: f
 

110voto

Aniket Points 419

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 a .

4voto

Bala R Points 57552

Essaye ça:

 if (s.charAt(0) == s.charAt(s.length() - 1))
 

2voto

Yoko Zunna Points 1391

La solution la plus 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);
}

À l'aide d'un tableau de caractères (attention pour le méchant Chaîne vide ou null argument de Chaîne!)

Une autre solution utilise StringBuilder (qui est habituellement utilisé pour faire de la Chaîne manupilation depuis la Chaîne elle-même 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 encore (plus pour l'enseignement de l'utilisation réelle) est celui-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();
}

Voici l'intégralité de la chaîne est inversé, et ensuite la partie qui ne doit pas être inversée est remplacée par la sous-chaîne. ;)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X