Saya memiliki string yang berisi beberapa teks diikuti oleh baris kosong. Apa cara terbaik untuk menjaga bagian dengan teks, tetapi menghapus baris putih spasi dari akhir?
java
string
line
blank-line
Confiqure
sumber
sumber
Jawaban:
Gunakan
String.trim()
metode untuk menyingkirkan spasi putih (spasi, garis baru, dll.) Dari awal dan akhir string.sumber
sumber
tl; dr
String::strip…
Lama
String::trim
metode memiliki definisi yang aneh dari spasi .Seperti dibahas di sini , Java 11 menambahkan
strip…
metode baru keString
kelas. Ini menggunakan definisi whitespace yang lebih memahami Unicode. Lihat aturan definisi ini di kelas JavaDoc untukCharacter::isWhitespace
.Kode contoh.
Atau Anda dapat menghapus hanya spasi awal atau hanya spasi.
Anda tidak menyebutkan secara pasti poin kode apa yang membentuk baris baru Anda. Saya membayangkan baris baru Anda kemungkinan termasuk dalam daftar poin kode yang ditargetkan oleh
strip
:sumber
Kode Java ini melakukan persis apa yang ditanyakan dalam judul pertanyaan, yaitu "menghapus baris baru dari awal dan akhir string-java":
Hapus baris baru hanya dari akhir baris:
Hapus baris baru hanya dari awal baris:
sumber
Jika string Anda berpotensi
null
, pertimbangkan untuk menggunakanStringUtils.trim()
- versi null-safe dariString.trim()
.sumber
sumber
Saya akan menambahkan jawaban untuk ini juga karena, sementara saya memiliki pertanyaan yang sama, jawaban yang diberikan tidak cukup. Mengingat beberapa pemikiran, saya menyadari bahwa ini dapat dilakukan dengan sangat mudah dengan ekspresi reguler.
Untuk menghapus baris baru dari awal:
dan akhir string:
Saya yakin ini bukan cara yang paling efisien untuk memangkas string. Tapi itu tampaknya menjadi cara paling bersih dan paling sederhana untuk melakukan operasi semacam itu.
Perhatikan bahwa metode yang sama dapat dilakukan untuk memangkas variasi dan kombinasi karakter dari kedua ujung karena ini adalah regex sederhana.
sumber
split()
hanyalah batas. Biarkan saja jika Anda ingin mencocokkan dengan jumlah yang tidak terbatas.Coba ini
sumber
Jika Anda hanya ingin menghapus jeda baris (bukan spasi, tab) di awal dan akhir sebuah String (bukan inbetween), maka Anda dapat menggunakan pendekatan ini:
Gunakan ekspresi reguler untuk menghapus carriage return (
\\r
) dan umpan baris (\\n
) dari awal (^
) dan ending ($
) dari sebuah string:Contoh Lengkap:
Ini menghasilkan:
sumber
sumber