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

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

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

Ответ 1

Код:

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

Ответ 2

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

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

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

Ответ 3

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

char

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

Строка

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

Ответ 4

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

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

или строки

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

Ответ 5

Попробуйте следующее:

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

Ответ 6

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

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

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

Ответ 7

public String lastChars(String a) {
if(a.length()>=1{
String str1 =a.substring(b.length()-1);
}
return str1;
}

Ответ 8

public char LastChar(String a){
    return a.charAt(a.length() - 1);
}

Ответ 9

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

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

t

Счастливое кодирование!

Ответ 10

Я изменил свой код на основе ваших предложений, однако это не работает для случая, подобного "{}} {{}".

char left = '}';
char right = '{';
int LCount = 0;
int RCount = 0;

if((brackets.charAt(0)==left)||(brackets.charAt(brackets.length()-1)==right))
{
    return false;
}

for(int i = 0; i < brackets.length(); i++)
{
    if(brackets.charAt(i) == right)
    {
        RCount++;
    }
    else
    {
        if(brackets.charAt(i) == left)
        {
            LCount++;
        }
    }
}

if(LCount == RCount)
{
    return true;
}
else
{
    return false;
}

Ответ 11

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

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

Ответ 12

Вот метод, который я использую, чтобы получить последний xx строки:

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

Тогда используйте это так:

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

Ответ 13

 public char lastChar(String s) {
     if (s == "" || s == null)
        return ' ';
    char lc = s.charAt(s.length() - 1);
    return lc;
}