In Java habe ich einen String:
Jamaica
Ich möchte das erste Zeichen der Zeichenfolge entfernen und dann zurückkehren amaica
Wie würde ich das machen?
Verwenden Sie die substring()
Funktion mit dem Argument von 1
, um die Teilzeichenfolge von Position 1 ( nach dem ersten Zeichen) bis zum Ende der Zeichenfolge zu bringen (wobei das zweite Argument standardmäßig die gesamte Länge der Zeichenfolge verwendet).
"Jamaica".substring(1);
quelle
removeFirst()
.Verwenden Sie
substring()
und geben Sie die Anzahl der Zeichen an, die Sie von vorne zuschneiden möchten.Antwort: "amaica"
quelle
Entfernen Sie in Java nur führende Zeichen, wenn es sich um ein bestimmtes Zeichen handelt
Verwenden Sie den ternären Java-Operator, um schnell zu überprüfen, ob Ihr Charakter vorhanden ist, bevor Sie ihn entfernen. Dadurch wird das führende Zeichen nur entfernt, wenn es vorhanden ist. Wenn eine leere Zeichenfolge übergeben wird, wird eine leere Zeichenfolge zurückgegeben.
Drucke:
Java, entfernen Sie alle Instanzen eines Zeichens an einer beliebigen Stelle in einer Zeichenfolge:
Java, entfernen Sie die erste Instanz eines Zeichens an einer beliebigen Stelle in einer Zeichenfolge:
quelle
header = header.substring(header.startsWith("#") ? 1 : 0);
header = header.replaceFirst("^#","");
Sie können die Teilzeichenfolgenmethode der
String
Klasse verwenden, die nur den Anfangsindex verwendet und die Teilzeichenfolge zurückgibt, die mit dem Zeichen am angegebenen Index beginnt und sich bis zum Ende der Zeichenfolge erstreckt.quelle
quelle
Das Wichtigste in Java ist, dass Strings unveränderlich sind - Sie können sie nicht ändern. Es macht also keinen Sinn, von "Entfernen eines Zeichens aus einer Zeichenfolge" zu sprechen. Stattdessen erstellen Sie eine NEUE Zeichenfolge mit nur den gewünschten Zeichen. Die anderen Beiträge in dieser Frage bieten Ihnen verschiedene Möglichkeiten, dies zu tun. Es ist jedoch wichtig zu verstehen, dass diese die ursprüngliche Zeichenfolge in keiner Weise ändern. Alle Verweise, die Sie auf die alte Zeichenfolge haben, beziehen sich weiterhin auf die alte Zeichenfolge (es sei denn, Sie ändern sie so, dass sie auf eine andere Zeichenfolge verweisen) und werden von der neu erstellten Zeichenfolge nicht beeinflusst.
Dies hat eine Reihe von Auswirkungen auf die Leistung. Jedes Mal, wenn Sie eine Zeichenfolge "ändern", erstellen Sie tatsächlich eine neue Zeichenfolge mit dem gesamten implizierten Overhead (Speicherzuweisung und Speicherbereinigung). Wenn Sie also eine Reihe von Änderungen an einer Zeichenfolge vornehmen möchten und sich nur um das Endergebnis kümmern möchten (die Zwischenzeichenfolgen sind tot, sobald Sie sie "ändern"), ist es möglicherweise sinnvoller, stattdessen einen StringBuilder oder StringBuffer zu verwenden.
quelle
Sie können dies tun:
oder allgemein:
quelle
Die Methode substring () gibt einen neuen String zurück, der eine Teilsequenz von Zeichenenthält,die derzeit in dieser Sequenz enthalten sind.
Die Teilzeichenfolge beginnt bei der angegebenen
start
und erstreckt sich bis zum Zeichen beiindex end - 1
.Es hat zwei Formen. Das erste ist
String substring(int FirstIndex)
String substring(int FirstIndex, int endIndex)
Beispiel
quelle
Ich stieß auf eine Situation, in der ich nicht nur das erste Zeichen (wenn es ein war
#
, sondern den ersten Zeichensatz) entfernen musste .String myString = ###Hello World
könnte der Ausgangspunkt sein, aber ich würde nur das behalten wollenHello World
. Dies könnte wie folgt erfolgen.Bei OP ersetzen Sie es
while
durchif
und es funktioniert auch.quelle
Eine andere Lösung, Sie können Ihr Problem
replaceAll
mit einem regulären Ausdruck^.{1}
( Regex-Demo ) lösen, zum Beispiel:quelle
Meine Version zum Entfernen führender Zeichen, eines oder mehrerer. Beispiel: String str1 = "01234". Wenn Sie die führende '0' entfernen, lautet das Ergebnis "1234". Für einen String str2 = "000123" ist das Ergebnis wieder "123". Und für String str3 = "000" ist das Ergebnis ein leerer String: "". Diese Funktionalität ist häufig nützlich, wenn numerische Zeichenfolgen in Zahlen konvertiert werden. Der Vorteil dieser Lösung gegenüber Regex (replaceAll (...)) besteht darin, dass diese viel schneller ist. Dies ist wichtig, wenn Sie eine große Anzahl von Zeichenfolgen verarbeiten.
quelle