Hapus kata terakhir dalam string python

Rumus ini menggunakan fungsi MID untuk menghapus kata terakhir dari string teks. Tantangan utamanya adalah mencari tahu di mana kata terakhir dimulai

Rumusnya agak berbelit-belit, tetapi langkah-langkahnya sederhana. Kami pertama-tama menghitung berapa banyak spasi yang ada dalam teks menggunakan LEN dan SUBSTITUTE. Selanjutnya, kita menggunakan argumen instance yang agak tidak jelas dalam fungsi SUBSTITUTE untuk mengganti spasi terakhir dengan tilde (~). Terakhir, kami menggunakan FIND untuk mencari tahu di mana tilde berada, dan fungsi MID untuk membuang semuanya setelah tilde

Bekerja dari dalam ke luar, kami menggunakan fungsi LEN dan SUBSTITUTE untuk menghitung berapa banyak ruang yang muncul di depan

LEN(B5)-LEN(SUBSTITUTE(B5," ","")) // returns 6

Untuk teks di B5, ini mengembalikan 6. Halaman ini menjelaskan bagian rumus ini secara lebih rinci. Ini memberitahu kita bahwa kita ingin memotong teks pada karakter spasi ke-6

Catatan. jika kata-kata dipisahkan oleh lebih dari satu spasi, Anda akan ingin menormalkan spasi terlebih dahulu dengan fungsi TRIM

Angka 6 kemudian dicolokkan ke PENGGANTI lain sebagai "nomor instans"

SUBSTITUTE(B5," ","~",6) // insert tilde
_

Di sini, kami mengganti instance ke-6 dari spasi (" ") dengan tanda gelombang (~). Setelah SUBSTITUTE berjalan, ia mengembalikan string ini

"It's been seven hours and fifteen~days"

Catatan. kami menggunakan tilde (~) hanya karena itu adalah karakter yang jarang muncul. Anda dapat menggunakan karakter apa pun yang Anda suka, asalkan tidak muncul di teks sumber

Selanjutnya, kami menggunakan fungsi FIND untuk menemukan tilde

FIND("~","It's been seven hours and fifteen~days")-1

FIND mengembalikan 34, karena tilde adalah karakter ke-34. Kami mengurangi 1 dari angka ini, karena kami tidak ingin menyertakan spasi terakhir di hasil akhir. Kita sekarang dapat menyederhanakan rumus menjadi

=MID(B5,1,33) // extract final text
_

Fungsi MID kemudian mengembalikan karakter 1-33

"It's been seven hours and fifteen"

Dengan pembatas khusus

Rumus yang sama dapat digunakan dengan pembatas yang berbeda. Misalnya, untuk menghapus semua teks setelah garis miring terakhir "/", Anda dapat menggunakan

Dalam tutorial singkat ini, kita akan menjelajahi berbagai teknik untuk menghapus karakter terakhir dari sebuah String

2. Menggunakan Tali. substring()

Cara termudah adalah dengan menggunakan metode substring() bawaan dari kelas String

Untuk menghapus karakter terakhir dari sebuah String, kita harus menggunakan dua parameter. 0 sebagai indeks awal, dan indeks karakter kedua dari belakang. Kita dapat mencapainya dengan memanggil metode String's length() , dan mengurangkan 1 dari hasilnya

Namun, metode ini tidak null-safe, dan jika kita menggunakan string kosong, ini akan gagal

Untuk mengatasi masalah dengan string null dan kosong, kita bisa membungkus metode di kelas helper

public static String removeLastChar(String s) {
    return (s == null || s.length() == 0)
      ? null 
      : (s.substring(0, s.length() - 1));
}
_

Kami dapat memperbaiki kode, dan menggunakan Java 8

public static String removeLastCharOptional(String s) {
    return Optional.ofNullable(s)
      .filter(str -> str.length() != 0)
      .map(str -> str.substring(0, str.length() - 1))
      .orElse(s);
    }

3. Menggunakan StringUtils. substring()

Alih-alih menemukan kembali roda, kita dapat menggunakan kelas StringUtils dari pustaka Apache Commons Lang3, yang menawarkan operasi String yang berguna. Salah satunya adalah metode null-safe substring(), yang menangani pengecualian

Untuk memasukkan StringUtils, kita harus mengupdate pom kita. file xml

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>
_

StringUtils. substring() membutuhkan tiga parameter. String yang diberikan, indeks karakter pertama (dalam kasus kami akan selalu 0), dan indeks karakter kedua dari belakang. Sekali lagi, kita cukup menggunakan metode length() dan kurangi 1

String TEST_STRING = "abcdef";

StringUtils.substring(TEST_STRING, 0, TEST_STRING.length() - 1);
_

Sekali lagi, operasi ini tidak null-safe. Ini akan berfungsi dengan baik dengan Strings kosong

4. Menggunakan StringUtils. mencacah()

Kelas StringUtils menyediakan metode chop() , yang berfungsi baik dengan semua skenario edge. String kosong dan nol

Ini sangat mudah digunakan, dan hanya membutuhkan satu parameter. String. Tujuan utamanya adalah menghapus karakter terakhir, tidak lebih, tidak kurang

StringUtils.chop(TEST_STRING);

5. Menggunakan Ekspresi Reguler

Kami juga dapat menghapus karakter terakhir (atau sejumlah karakter) dari sebuah String dengan memanfaatkan ekspresi reguler dengan baik

Sebagai contoh, kita dapat menggunakan metode replaceAll() dari kelas String itu sendiri, yang membutuhkan dua parameter. ekspresi reguler dan String pengganti

TEST_STRING.replaceAll(".$", "");

Perhatikan bahwa, karena kita memanggil metode pada String, operasi tersebut tidak null-safe

Selain itu, ekspresi replaceAll() dan regex bisa menjadi rumit pada pandangan pertama. Kita dapat membaca lebih lanjut tentang regex di sini, tetapi untuk membuat logikanya sedikit lebih mudah digunakan, kita dapat membungkusnya dalam kelas pembantu

public static String removeLastCharRegex(String s) {
    return (s == null) ? null : s.replaceAll(".$", "");
}

Perhatikan bahwa jika sebuah String diakhiri dengan baris baru, maka metode di atas akan gagal sebagai “. ” dalam regex cocok untuk karakter apa pun kecuali untuk terminator baris

Terakhir, mari kita tulis ulang implementasinya dengan Java 8

public static String removeLastCharRegexOptional(String s) {
    return Optional.ofNullable(s)
      .map(str -> str.replaceAll(".$", ""))
      .orElse(s);
}

6. Kesimpulan

Dalam artikel singkat ini, kami membahas berbagai cara untuk menghapus hanya karakter terakhir dari sebuah String, beberapa manual dan beberapa sudah siap pakai

Jika kami membutuhkan lebih banyak fleksibilitas, dan kami perlu menghapus lebih banyak karakter, kami dapat menggunakan solusi yang lebih canggih dengan ekspresi reguler

Bagaimana cara menghapus kata terakhir dari sebuah string?

var str = "Saya ingin menghapus kata terakhir. "; var lastIndex = str. lastIndexOf(" "); . substring(0, lastIndex); Ini adalah solusi yang bagus.

Bagaimana cara menghapus kemunculan karakter terakhir dari string dengan Python?

rstrip. Metode string rstrip menghapus karakter dari sisi kanan string yang diberikan padanya. Jadi, kita bisa menggunakannya untuk menghapus elemen terakhir dari string. Kita tidak perlu menulis lebih dari satu baris kode untuk menghapus karakter terakhir dari string.