Как получить последний символ строки?
public class Main
{
public static void main(String[] args)
{
String s = "test string";
//char lastChar = ???
}
}
Как получить последний символ строки?
public class Main
{
public static void main(String[] args)
{
String s = "test string";
//char lastChar = ???
}
}
Ответы:
Код:
public class Test {
public static void main(String args[]) {
String string = args[0];
System.out.println("last character: " +
string.substring(string.length() - 1));
}
}
Выход из java Test abcdef
:
last character: f
charAt()
неsubstring()
Вот метод, использующий String.charAt()
:
String str = "India";
System.out.println("last char = " + str.charAt(str.length() - 1));
В результате получается last char = a
.
Другие ответы очень полны, и вы обязательно должны их использовать, если вы пытаетесь найти последний символ строки. Но если вы просто пытаетесь использовать условное выражение (например, последний символ «g»), вы также можете сделать следующее:
if (str.endsWith("g")) {
или строки
if (str.endsWith("bar")) {
Простое решение:
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, поскольку сама 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();
}
Здесь полная строка переворачивается, а затем часть, которая не должна быть обращена, заменяется подстрокой. ;)
public String lastChars(String a) {
if(a.length()>=1{
String str1 =a.substring(b.length()-1);
}
return str1;
}
public char LastChar(String a){
return a.charAt(a.length() - 1);
}
String aString = "This will return the letter t";
System.out.println(aString.charAt(aString.length() - 1));
Вывод должен быть:
t
Удачного кодирования!
Вот метод, который я использую, чтобы получить последний 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
str.charAt(str.length() - 1)
обычно это последний символ в строке; но подумайте, что произойдет, если str будет пустым или пустым.