Wie erhalte ich das letzte Zeichen einer Zeichenfolge?
public class Main
{
public static void main(String[] args)
{
String s = "test string";
//char lastChar = ???
}
}
Wie erhalte ich das letzte Zeichen einer Zeichenfolge?
public class Main
{
public static void main(String[] args)
{
String s = "test string";
//char lastChar = ???
}
}
Antworten:
Der Code:
public class Test {
public static void main(String args[]) {
String string = args[0];
System.out.println("last character: " +
string.substring(string.length() - 1));
}
}
Die Ausgabe von java Test abcdef
:
last character: f
charAt()
nicht verwendensubstring()
Hier ist eine Methode mit String.charAt()
:
String str = "India";
System.out.println("last char = " + str.charAt(str.length() - 1));
Die resultierende Ausgabe ist last char = a
.
Die anderen Antworten sind sehr vollständig und sollten auf jeden Fall verwendet werden, wenn Sie versuchen, das letzte Zeichen einer Zeichenfolge zu finden. Wenn Sie jedoch nur versuchen, eine Bedingung zu verwenden (z. B. das letzte Zeichen 'g'), können Sie auch Folgendes tun:
if (str.endsWith("g")) {
oder Strings
if (str.endsWith("bar")) {
Einfache Lösung ist:
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);
}
Verwenden eines Zeichenarrays (achten Sie auf das böse leere String- oder Null-String-Argument!)
Eine andere Lösung verwendet StringBuilder (der normalerweise zur String-Manupilation verwendet wird, da String selbst unveränderlich ist.
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();
}
Ein weiterer Ansatz (mehr für den Unterricht als für den tatsächlichen Gebrauch) ist dieser:
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();
}
Hier wird die gesamte Zeichenfolge umgekehrt und dann der Teil, der nicht umgekehrt werden soll, durch die Teilzeichenfolge ersetzt. ;)
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));
Die Ausgabe sollte sein:
t
Viel Spaß beim Codieren!
Hier ist eine Methode, mit der ich das letzte xx eines Strings erhalte:
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;
}
}
Dann benutze es so:
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)
normalerweise das letzte Zeichen in der Zeichenfolge. Aber überlegen Sie, was passiert, wenn str leer oder null ist.