Saya ingin menghapus karakter terakhir dari sebuah string. Saya sudah mencoba melakukan ini:
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;
}
}
Mendapatkan panjang string - 1 dan mengganti huruf terakhir dengan tidak ada (menghapusnya), tetapi setiap kali saya menjalankan program, itu menghapus huruf tengah yang sama dengan huruf terakhir.
Misalnya, kata itu adalah "pengagum"; setelah saya menjalankan metode, saya mendapatkan "admie." Saya ingin mengembalikan kata mengagumi.
null != str &&
di awal cek.str != null &&
!if (str = NULL)
yang tidak hanya akan selalu bernilai false (NULL == 0 == false) tetapi juga akan memberikan nilaistr
yang kemungkinan besar bukan apa yang ingin Anda lakukan. Anda tidak dapat menulisif (NULL = str)
karena NULL bukan variabel dan tidak dapat ditugaskan. Jadi, itu adalah konvensi yang lebih aman untuk meletakkan NULL di sebelah kiri. Ini bukan masalah di Jawa sekalipun.Mengapa tidak hanya satu liner?
Kode Lengkap
Demo
sumber
return str.substring(0,str.length()-1);
sebagai perbaikanKarena kita sedang membahas suatu subjek, kita juga dapat menggunakan ekspresi reguler
sumber
Masalah yang diuraikan dan solusi yang diajukan terkadang berhubungan dengan menghilangkan separator. Jika ini kasus Anda, silakan lihat Apache Commons StringUtils, ia memiliki metode yang disebut removeEnd yang sangat elegan.
Contoh:
Akan menghasilkan: "string 1 | string 2 | string 3"
sumber
sumber
Jangan mencoba menemukan kembali roda, sementara yang lain sudah menulis perpustakaan untuk melakukan manipulasi string:
org.apache.commons.lang3.StringUtils.chop()
sumber
Gunakan ini:
sumber
Jika Anda mencoba membendung kata-kata bahasa Inggris
Perbedaan antara Lucene stemmers: EnglishStemmer, PorterStemmer, LovinsStemmer menguraikan beberapa opsi Java.
sumber
Di Kotlin Anda dapat menggunakan metode dropLast () dari kelas string. Ini akan menjatuhkan nomor yang diberikan dari string, mengembalikan string baru
sumber
Sejauh menyangkut keterbacaan, saya menemukan ini menjadi yang paling ringkas
Indeks negatif dapat digunakan dalam utilitas StringUtils Apache. Semua angka negatif diperlakukan dari offset dari ujung string.
sumber
menghapus kejadian 'xxx' terakhir:
menghapus kejadian 'xxx' terakhir jika yang terakhir:
Anda dapat mengganti 'xxx' pada apa yang Anda inginkan tetapi hati-hati dengan karakter khusus
sumber
sumber
sumber
Lihat ke StringBuilder Class:
sumber
sumber
Satu jawaban (hanya alternatif lucu - jangan coba ini di rumah, dan jawaban bagus sudah diberikan):
sumber
Mengapa tidak menggunakan urutan pelarian ...!
Hidup sekarang jauh lebih mudah. XD! ~ Satu kalimat yang bisa dibaca
sumber
Sebagian besar jawaban di sini lupa tentang pasangan pengganti .
Sebagai contoh, karakter 𝕫 (codepoint U + 1D56B) tidak cocok menjadi satu
char
, jadi untuk diwakili, itu harus membentuk sepasang pengganti dua karakter.Jika seseorang hanya menerapkan jawaban yang saat ini diterima (menggunakan
str.substring(0, str.length() - 1)
, satu splices pasangan pengganti, mengarah ke hasil yang tidak terduga.Satu juga harus menyertakan cek apakah karakter terakhir adalah pasangan pengganti:
sumber
IndexOutOfBoundsException
? (mis. mungkinkah Character.isSurrogate mengembalikan true ketika sebenarnya tidak ada char sebelumnya, membuatstr.length()-cut
negatif).2
olehMath.min(2, str.length())
.Java 8
Keluaran: test-ab
sumber
Saya menggunakan ini dalam kode saya, mudah dan sederhana. itu hanya berfungsi ketika String> 0. Saya telah terhubung ke tombol dan di dalam pernyataan if berikut
sumber
sumber
jika Anda memiliki karakter khusus seperti; di json cukup gunakan String.replace (";", "") kalau tidak, Anda harus menulis ulang semua karakter dalam string dikurangi yang terakhir.
sumber
Cara membuat char di rekursi di akhir:
sebagai contoh:
sumber
Berikut jawaban yang berfungsi dengan titik-titik kode di luar Basic Multilingual Plane (Java 8+).
Menggunakan stream:
Lebih efisien mungkin:
sumber
Kita bisa menggunakan substring. Inilah contohnya,
sumber
ganti saja kondisi "jika" seperti ini:
ini akan melakukan trik untuk Anda.
sumber
Misalkan total panjang string saya = 24 Saya ingin memotong karakter terakhir setelah posisi 14 sampai akhir, berarti saya ingin mulai 14 berada di sana. Jadi saya terapkan solusi berikut.
sumber
Saya harus menulis kode untuk masalah yang sama. Salah satu cara yang saya dapat menyelesaikannya menggunakan metode pengkodean rekursif.
Sebagian besar kode yang saya lihat pada topik ini tidak menggunakan rekursi jadi semoga saya dapat membantu Anda atau seseorang yang memiliki masalah yang sama.
sumber
Peasy mudah:
sumber
Ini adalah satu cara untuk menghapus karakter terakhir dalam string:
sumber