Как мне получить последний символ строки?

Как получить последний символ строки?

public class Main
{
    public static void main(String[] args) 
    {
        String s = "test string";
        //char lastChar = ???
    }   
}
вопрос задан 2.03.2011
lonesarah
1103 репутация

9 ответов


  • 195 рейтинг

    код:

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

    Выход:

    last character: f
    
    ответ дан jcomeau_ictx, с репутацией 29405, 2.03.2011
  • 83 рейтинг

    Вот метод с использованием String.charAt():

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

    Результирующий вывод last char = a.

    ответ дан Aniket, с репутацией 1212, 23.10.2012
  • 16 рейтинг

    Другие ответы содержат много ненужного текста и кода. Вот два способа получить последний символ строки:

    char

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

    Строка

    String lastChar = myString.substring(myString.length() - 1);
    
    ответ дан Suragch, с репутацией 180669, 24.10.2016
  • 8 рейтинг

    Другие ответы очень полны, и вы обязательно должны их использовать, если вы пытаетесь найти последний символ строки. Но если вы просто пытаетесь использовать условное (например, г. является последним символом «g»), вы также можете сделать следующее:

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

    или строки

    if (str.endsWith("bar")) {
    
    ответ дан Neil Chowdhury, с репутацией 400, 28.12.2017
  • 5 рейтинг

    Попробуйте это:

    if (s.charAt(0) == s.charAt(s.length() - 1))
    
    ответ дан Bala R, с репутацией 88073, 2.03.2011
  • 3 рейтинг

    Простое решение:

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

    Использование массива символов (обратите внимание на неприятный пустой аргумент String или null String! )

    Другое решение использует StringBuilder (который обычно используется для выполнения String Manupilation, поскольку сама String является неизменяемой.

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

    Еще один подход (больше для инструкции, чем фактического использования) - это один:

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

    Здесь полная строка полностью изменена, и затем часть, которая не должна быть обращена, заменяется подстрокой. ;)

    ответ дан Yoko Zunna, с репутацией 1743, 2.03.2011
  • 2 рейтинг
    String aString = "This will return the letter t";
    System.out.println(aString.charAt(aString.length() - 1));
    

    Вывод должен быть:

    t
    

    Удачного кодирования!

    ответ дан does_not_exist, с репутацией , 3.10.2017
  • 2 рейтинг
    public String lastChars(String a) {
    if(a.length()>=1{
    String str1 =a.substring(b.length()-1);
    }
    return str1;
    }
    
    ответ дан Abdul Hanan Khan, с репутацией 46, 5.04.2016
  • 2 рейтинг
    public char LastChar(String a){
        return a.charAt(a.length() - 1);
    }
    
    ответ дан vijay pandey, с репутацией 21, 24.10.2016