585 Stimmen

Wie entfernt man das letzte Zeichen aus einer Zeichenkette?

Ich möchte das letzte Zeichen aus einer Zeichenkette entfernen. Ich habe versucht, dies zu tun:

public String method(String str) {
    if (str.charAt(str.length()-1)=='x'){
        str = str.replace(str.substring(str.length()-1), "");
        return str;
    } else{
        return str;
    }
}

Ich erhalte die Länge der Zeichenkette - 1 und ersetze den letzten Buchstaben durch nichts (ich lösche ihn), aber jedes Mal, wenn ich das Programm ausführe, löscht es die mittleren Buchstaben, die mit dem letzten Buchstaben identisch sind.

Ein Beispiel: Das Wort ist "admirer"; nachdem ich die Methode ausgeführt habe, erhalte ich "admie". Ich möchte, dass sie das Wort "admire" zurückgibt.

41voto

membersound Punkte 74298

Versuchen Sie nicht, das Rad neu zu erfinden, während andere bereits Bibliotheken zur Stringmanipulation geschrieben haben: org.apache.commons.lang3.StringUtils.chop()

37voto

Mahavir Jain Punkte 1362

In Kotlin können Sie die dropLast()-Methode der String-Klasse verwenden. Sie löscht die angegebene Zahl aus dem String und gibt einen neuen String zurück

var string1 = "Some Text"
string1 = string1.dropLast(1)

28voto

Navaneeth Punkte 873

Verwenden Sie dies:

 if(string.endsWith("x")) {

    string= string.substring(0, string.length() - 1);
 }

11voto

Mike Samuel Punkte 113550
if (str.endsWith("x")) {
  return str.substring(0, str.length() - 1);
}
return str;

Ein Beispiel: Das Wort ist "admirer"; nachdem ich die Methode ausgeführt habe, erhalte ich "admie". Ich möchte, dass sie das Wort "admire" zurückgibt.

Für den Fall, dass Sie versuchen Stamm Englische Wörter

Unter Stemming versteht man das Reduzieren von flektierten (oder manchmal abgeleiteten) Wörtern auf ihren Stamm, ihre Basis- oder Wurzelform - im Allgemeinen eine geschriebene Wortform.

...

Ein Stemming-Algorithmus für die englische Sprache sollte z. B. die Zeichenfolge "cats" (und möglicherweise "catlike", "catty" usw.) als auf der Wurzel "cat" basierend identifizieren, und "stemmer", "stemming", "stemmed" als auf "stem" basierend. Ein Stemming-Algorithmus reduziert die Wörter "fishing", "fished", "fish" und "fisher" auf den Wortstamm "fish".

Unterschied zwischen Lucene Stemmers: EnglishStemmer, PorterStemmer, LovinsStemmer skizziert einige Java-Optionen.

11voto

Kasturi Punkte 3227

Was die Lesbarkeit anbelangt, so finde ich das hier am prägnantesten

StringUtils.substring("string", 0, -1);

Die negativen Indizes können in Apache's StringUtils Dienstprogramm verwendet werden. Alle negativen Zahlen werden als Offset vom Ende der Zeichenkette aus behandelt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X