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.

1voto

C Williams Punkte 802
public String removeLastCharacter(String str){
       String result = null;
        if ((str != null) && (str.length() > 0)) {
          return str.substring(0, str.length() - 1);
        }
        else{
            return "";
        }

}

1voto

Nadhu Punkte 409

Java 8

import java.util.Optional;

public class Test
{
  public static void main(String[] args) throws InterruptedException
  {
    System.out.println(removeLastChar("test-abc"));
  }

  public static String removeLastChar(String s) {
    return Optional.ofNullable(s)
      .filter(str -> str.length() != 0)
      .map(str -> str.substring(0, str.length() - 1))
      .orElse(s);
    }
}

Ausgabe : test-ab

0voto

RoboC Punkte 23

Kinderleicht:

StringBuilder sb= new StringBuilder();
for(Entry<String,String> entry : map.entrySet()) {
        sb.append(entry.getKey() + "_" + entry.getValue() + "|");
}
String requiredString = sb.substring(0, sb.length() - 1);

0voto

klvnmarshall Punkte 19

Für Kotlin schauen Sie unter

string.dropLast(1)

0voto

Denilson Anachury Punkte 111

Seit Java 11 können Sie Optional verwenden, um Nullzeigerausnahmen zu vermeiden und funktionale Programmierung zu verwenden:

public String removeLastCharacter(String string) {
    return Optional.ofNullable(string)
        .filter(str -> !str.isEmpty() && !string.isBlank())
        .map(str -> str.substring(0, str.length() - 1))
        .orElse(""); // Should be another value that need if the {@param: string} is "null"
}

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