Как мне получить последний символ строки? - PullRequest
162 голосов
/ 02 марта 2011

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

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

Ответы [ 11 ]

221 голосов
/ 02 марта 2011

Код:

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
88 голосов
/ 23 октября 2012

Вот метод, использующий String.charAt():

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

В результате получается last char = a.

23 голосов
/ 24 октября 2016

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

символ

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

Строка

String lastChar = myString.substring(myString.length() - 1);
19 голосов
/ 28 декабря 2017

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

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

или строки

if (str.endsWith("bar")) {
5 голосов
/ 02 марта 2011

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

if (s.charAt(0) == s.charAt(s.length() - 1))
2 голосов
/ 03 октября 2017
String aString = "This will return the letter t";
System.out.println(aString.charAt(aString.length() - 1));

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

t

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

2 голосов
/ 24 октября 2016
public char LastChar(String a){
    return a.charAt(a.length() - 1);
}
2 голосов
/ 06 апреля 2016
public String lastChars(String a) {
if(a.length()>=1{
String str1 =a.substring(b.length()-1);
}
return str1;
}
2 голосов
/ 02 марта 2011

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

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 является неизменяемой.

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

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

0 голосов
/ 16 мая 2019

Что-то из массива:

s = 'some string'
s[-1]   # last char
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...