831 Stimmen

Nachfolgendes Begrenzungszeichen aus einer begrenzten Zeichenkette entfernen

Was ist der schnellste Weg, um das letzte Zeichen aus einer Zeichenkette zu entfernen?

Ich habe eine Zeichenfolge wie

a,b,c,d,e,

Ich möchte das letzte ',' entfernen und die verbleibende Zeichenfolge zurückbekommen:

OUTPUT: a,b,c,d,e

Was ist der schnellste Weg, dies zu tun?

39 Stimmen

Wenn diese Zeichenkette durch eine Schleife zusammengefügt wird, können Sie "implode" verwenden, sie wird ohne letztes Komma zusammengefügt

1 Stimmen

@Tufan Bar Yldrm: String-Verkettung ist nicht in Schleife

9 Stimmen

Machen Sie sich bitte keine Gedanken über "am schnellsten", ohne vorher eine Messung durchgeführt zu haben, die zeigt, dass es darauf ankommt. Machen Sie sich keine Gedanken über den schnellsten Weg, sondern darüber, welcher Weg am klarsten ist.

-1voto

Your Common Sense Punkte 154708

"Die schnellste Der beste Code ist der Code, den es nicht gibt".

Apropos Randfälle, es gibt ein recht häufiges Problem mit dem nachgestellten Komma, das nach der Schleife erscheint, wie

$str = '';
foreach ($array as $value) {
    $str .= "$value,";
}

was, wie ich annehme, auch in der Ausgangsfrage der Fall sein könnte. In diesem Fall wäre die schnellste Methode sicherlich nicht zu ergänzen das nachgestellte Komma überhaupt nicht:

$str = '';
foreach ($array as $value) {
    $str .= $str ? "," : "";
    $str .= $value;
}

hier wird geprüft, ob $str bereits einen Wert hat, und wenn ja, wird ein Komma hinzugefügt antes de die nächste Position, so dass das Ergebnis keine zusätzlichen Kommata enthält.

2 Stimmen

Ich liebe diese Antwort, die Lösung nicht entfernen das letzte Zeichen aus einer Zeichenfolge YES. Aber basierend auf der Frage ist das Anhängen von Kommas in einer Schleife höchstwahrscheinlich der Grund dafür, dass Sie das letzte Zeichen entfernen möchten, also warum nicht einen besseren Algorithmus verwenden und Sie müssen sich nicht um das Entfernen des letzten Zeichens sorgen

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