Apa yang saya perhatikan dalam jenis pertanyaan ini yang disarankan oleh setiap orang untuk menghapus karakter terakhir dari string yang diberikan. Tetapi ini tidak memenuhi definisi metode Trim.
Trim - Menghapus semua kemunculan karakter spasi putih dari awal dan akhir instance ini.
Catatan jika Anda ingin menghapus semua karakter dengan nilai yang sama yaitu (!!!!) metode di atas menghapus semua keberadaan '!' dari akhir string, tetapi jika Anda ingin menghapus hanya karakter terakhir Anda harus menggunakan ini:
Ini lebih baik selama Anda selalu tahu karakter apa yang ingin Anda hapus dari ujung String.
Nimrod Shory
1
Hai Vash, apa pendapat Anda tentang solusi saya menggunakan RegEx? Itu memenuhi permintaan Thqr dan memungkinkan untuk menghapus '!' char dari "dunia!" ekspresi, di mana pun ekspresi ditempatkan, hanya dalam satu baris kode.
Marcello Faga
24
-1 Solusi ini akan menghapus semua karakter akhir yang sama! Misalnya akan berubah "Halo !!!!!!!!" ke "Hello", yang menghapus lebih dari karakter terakhir.
Kugel
1
@ Kugel, Anda benar sekali, dan itulah mengapa Anda harus membaca sekali lagi jawaban saya. Untuk penjelasan OP jangan tanya bagaimana cara menghapus karakter terakhir, tetapi bagaimana cara memangkasnya.
Damian Leszczyński - Vash
1
@ Vash - bagaimana Anda menghapus satu kutipan 'menggunakan metode - "Hello! World!". TrimEnd ('! ');
"!Something!".TrimLeadingCharacter('X');// Result '!Something!' (No Change)"!Something!".TrimTrailingCharacter('S');// Result '!Something!' (No Change)"!Something!".TrimEndsCharacter('g');// Result '!Something!' (No Change)"!Something!".TrimLeadingCharacter('!');// Result 'Something!' (1st Character removed)"!Something!".TrimTrailingCharacter('!');// Result '!Something' (Last Character removed)"!Something!".TrimEndsCharacter('!');// Result 'Something' (End Characters removed)"!!Something!!".TrimLeadingCharacter('!');// Result '!Something!!' (Only 1st instance removed)"!!Something!!".TrimTrailingCharacter('!');// Result '!!Something!' (Only Last instance removed)"!!Something!!".TrimEndsCharacter('!');// Result '!Something!' (Only End instances removed)
Jawaban:
Baca lebih lajut
EDIT:
Apa yang saya perhatikan dalam jenis pertanyaan ini yang disarankan oleh setiap orang untuk menghapus karakter terakhir dari string yang diberikan. Tetapi ini tidak memenuhi definisi metode Trim.
MSDN-Trim
Di bawah definisi ini hanya menghapus karakter terakhir dari string adalah solusi yang buruk.
Jadi jika kita ingin "Memotong karakter terakhir dari string" kita harus melakukan sesuatu seperti ini
Contoh sebagai metode ekstensi:
Catatan jika Anda ingin menghapus semua karakter dengan nilai yang sama yaitu (!!!!) metode di atas menghapus semua keberadaan '!' dari akhir string, tetapi jika Anda ingin menghapus hanya karakter terakhir Anda harus menggunakan ini:
sumber
sumber
atau
... jika Anda ingin menghapus karakter non-spasi putih dari akhir.
sumber
TrimEnd()
metode dan jika ada itu bisa membuatSubstring(..)
panggilan berikutnya gagal pada string pendek.sumber
Coba ini:
sumber
sumber
Contoh lain dari pemangkasan karakter terakhir dari string:
Anda dapat memasukkannya ke metode ekstensi dan mencegahnya dari string nol, dll.
sumber
sumber
Anda juga bisa menggunakan ini:
sumber
Sangat mudah dan sederhana:
sumber
Versi @Damian Leszczyński yang sedikit dimodifikasi - Vash yang akan memastikan bahwa hanya karakter tertentu yang akan dihapus.
sumber
Saya mengambil jalan menulis ekstensi menggunakan TrimEnd hanya karena saya sudah menggunakannya inline dan senang dengan itu ... yaitu:
Pastikan Anda memasukkan namespace di kelas Anda menggunakan kelas statis; P dan penggunaannya adalah:
sumber
Contoh kelas Ekstensi untuk menyederhanakan ini: -
Pemakaian
sumber
Jika Anda ingin menghapus '!' karakter dari ekspresi tertentu ("dunia" dalam kasus Anda), maka Anda dapat menggunakan ekspresi reguler ini
karakter spesial $ 1 berisi semua ekspresi "dunia" yang cocok, dan digunakan untuk menggantikan "dunia!" ekspresi
sumber