Di Jawa, saya punya String:
Jamaica
Saya ingin menghapus karakter pertama dari string dan kemudian kembali amaica
Bagaimana saya melakukan ini?
Gunakan substring()
fungsi dengan argumen 1
untuk mendapatkan substring dari posisi 1 ( setelah karakter pertama) ke akhir string (membiarkan argumen kedua keluar default ke panjang penuh dari string).
"Jamaica".substring(1);
sumber
removeFirst()
.Gunakan
substring()
dan berikan jumlah karakter yang ingin Anda pangkas dari depan.Jawab: "amaica"
sumber
Di Jawa, hapus karakter utama hanya jika itu adalah karakter tertentu
Gunakan operator ternary Java untuk memeriksa dengan cepat apakah karakter Anda ada di sana sebelum menghapusnya. Ini menghapus karakter utama hanya jika ada, jika melewati string kosong, kembali blankstring.
Cetakan:
Java, hapus semua instance karakter di mana saja dalam sebuah string:
Java, hapus instance pertama dari karakter mana saja di string:
sumber
header = header.substring(header.startsWith("#") ? 1 : 0);
header = header.replaceFirst("^#","");
Anda bisa menggunakan metode substring dari
String
kelas yang hanya mengambil indeks awal dan mengembalikan substring yang dimulai dengan karakter pada indeks yang ditentukan dan meluas ke akhir string.sumber
sumber
Hal utama yang perlu dipahami di Jawa adalah bahwa String tidak dapat diubah - Anda tidak dapat mengubahnya. Jadi tidak masuk akal untuk berbicara tentang 'menghapus karakter dari string'. Sebagai gantinya, Anda membuat string BARU hanya dengan karakter yang Anda inginkan. Posting lain dalam pertanyaan ini memberi Anda berbagai cara untuk melakukan itu, tetapi penting untuk memahami bahwa ini tidak mengubah string asli dengan cara apa pun. Referensi apa pun yang Anda miliki ke string lama akan terus merujuk ke string lama (kecuali jika Anda mengubahnya untuk merujuk ke string lain) dan tidak akan terpengaruh oleh string yang baru dibuat.
Ini memiliki sejumlah implikasi untuk kinerja. Setiap kali Anda 'memodifikasi' string, Anda benar-benar membuat string baru dengan semua overhead tersirat (alokasi memori dan pengumpulan sampah). Jadi jika Anda ingin membuat serangkaian modifikasi pada string dan hanya peduli tentang hasil akhir (string menengah akan mati segera setelah Anda 'memodifikasi' mereka), mungkin lebih masuk akal untuk menggunakan StringBuilder atau StringBuffer sebagai gantinya.
sumber
Anda bisa melakukan ini:
atau secara umum:
sumber
substring () metode kembali sebuah String baru yang berisi subsequence karakter saat ini terdapat dalam urutan ini.
The substring dimulai pada tertentu
start
dan meluas ke karakter diindex end - 1
.Ini memiliki dua bentuk. Yang pertama adalah
String substring(int FirstIndex)
String substring(int FirstIndex, int endIndex)
Contoh
sumber
Saya menemukan situasi di mana saya harus menghapus tidak hanya karakter pertama (jika itu adalah
#
, tetapi set karakter pertama).String myString = ###Hello World
bisa menjadi titik awal, tetapi saya hanya ingin menyimpannyaHello World
. ini bisa dilakukan sebagai berikut.Untuk kasus OP, ganti
while
denganif
dan berfungsi juga.sumber
Solusi lain, Anda dapat memecahkan masalah Anda menggunakan
replaceAll
dengan beberapa regex^.{1}
( demo regex ) misalnya:sumber
Versi saya menghapus karakter utama, satu atau beberapa. Sebagai contoh, String str1 = "01234", ketika menghapus memimpin '0', hasilnya akan menjadi "1234". Untuk String str2 = "000123" hasilnya akan menjadi lagi "123". Dan untuk String str3 = "000" hasilnya adalah string kosong: "". Fungsionalitas seperti itu sering berguna ketika mengubah string numerik menjadi angka. Keuntungan dari solusi ini dibandingkan dengan regex (replaceAll (...)) adalah bahwa ini jauh lebih cepat. Ini penting saat memproses sejumlah besar String.
sumber