Dan untuk keterbacaan yang lebih baik, Anda dapat menggunakan "". Ini mengkompilasi persis sama dengan string. Kosong hari ini.
PRMan
Ini tidak, "" membuat string baru, sementara string.Empty mereferensikan satu. Tidak terlalu penting dalam hal kinerja (maksud saya itu satu string kosong jadi ya ...) tetapi hanya ingin menunjukkannya :)
Zer0
11
Substring memiliki dua metode Overloading:
publicstringSubstring(int startIndex);//The substring starts at a specified character position and continues to the end of the string.publicstringSubstring(int startIndex,int length);//The substring starts at a specified character position and taking length no of character from the startIndex.
Jadi untuk skenario ini, Anda dapat menggunakan metode pertama seperti di bawah ini:
var str ="hello world!";
str = str.Substring(10);
Berikut outputnya:
d!
Jika Anda dapat menerapkan pengkodean defensif dengan memeriksa panjangnya.
saat ini ia mengembalikan karakter terakhir dari string jika string kurang dari 10 karakter.
Răzvan Flavius Panda
1
Untuk:
var str ="hello world!";
Untuk mendapatkan string yang dihasilkan tanpa 10 karakter pertama dan string kosong jika string kurang atau sama panjangnya dengan 10 Anda dapat menggunakan:
var result = str.Length<=10?"": str.Substring(10);
atau
var result = str.Length<=10?"": str.Remove(0,10);
Varian pertama lebih disukai karena hanya membutuhkan satu parameter metode.
Tidak perlu menentukan panjang ke dalam Substringmetode. Karena itu:
string s = hello world;string p = s.Substring(3);
p akan:
"lo dunia".
Satu-satunya pengecualian yang perlu Anda penuhi adalah ArgumentOutOfRangeExceptionjika
startIndexkurang dari nol atau lebih besar dari panjang instance ini.
C# 8tidak didukung saat menargetkan .NET Framework.
l33t
0
Memanggil SubString()mengalokasikan string baru. Untuk kinerja yang optimal, Anda harus menghindari alokasi ekstra itu. Dimulai dengan C# 7.2Anda dapat memanfaatkan Span pola .
Saat menargetkan .NET Framework, sertakan paket System.MemoryNuGet . Untuk .NET Coreproyek ini berhasil di luar kotak.
staticvoidMain(string[] args){var str ="hello world!";var span = str.AsSpan(10);// No allocation!// Outputs: d!foreach(var c in span){Console.Write(c);}Console.WriteLine();}
Jawaban:
Anda perlu melakukan pemeriksaan panjang jika tidak, ini akan menimbulkan kesalahan
sumber
str = str.Remove(0,10);
Menghapus 10 karakter pertamaatau
str = str.Substring(10);
Membuat substring mulai dari karakter ke-11 hingga akhir string.Untuk tujuan Anda, mereka harus bekerja secara identik.
sumber
Substring mungkin yang Anda inginkan, seperti yang ditunjukkan orang lain. Tetapi hanya untuk menambahkan opsi lain ke dalam campuran ...
Anda bahkan tidak perlu memeriksa panjangnya! :) Jika kurang dari 10 karakter, Anda mendapatkan string kosong.
sumber
Substring
memiliki dua metode Overloading:Jadi untuk skenario ini, Anda dapat menggunakan metode pertama seperti di bawah ini:
Berikut outputnya:
Jika Anda dapat menerapkan pengkodean defensif dengan memeriksa panjangnya.
sumber
Ini
Substring
memiliki parameter yang disebut startIndex. Setel sesuai dengan indeks tempat Anda ingin memulai.sumber
Anda Dapat Menghapus Char menggunakan Baris di bawah ini,
: - Pertama periksa bahwa String memiliki cukup banyak karakter untuk dihapus , seperti
sumber
Gunakan metode substring.
sumber
Anda dapat menggunakan metode Metode substring yang mengambil satu parameter, yang merupakan indeks untuk memulai.
Dalam kode saya di bawah ini, saya menangani kasus itu panjangnya kurang dari indeks awal yang Anda inginkan dan ketika panjangnya nol.
sumber
Untuk:
Untuk mendapatkan string yang dihasilkan tanpa 10 karakter pertama dan string kosong jika string kurang atau sama panjangnya dengan 10 Anda dapat menggunakan:
atau
Varian pertama lebih disukai karena hanya membutuhkan satu parameter metode.
sumber
Tidak perlu menentukan panjang ke dalam
Substring
metode. Karena itu:p
akan:Satu-satunya pengecualian yang perlu Anda penuhi adalah
ArgumentOutOfRangeException
jikastartIndex
kurang dari nol atau lebih besar dari panjang instance ini.sumber
Mulai dari C # 8, Anda cukup menggunakan Range Operator. Ini cara yang lebih efisien dan lebih baik untuk menangani kasus seperti itu.
sumber
C# 8
tidak didukung saat menargetkan.NET Framework
.Memanggil
SubString()
mengalokasikan string baru. Untuk kinerja yang optimal, Anda harus menghindari alokasi ekstra itu. Dimulai denganC# 7.2
Anda dapat memanfaatkan Span pola .Saat menargetkan
.NET Framework
, sertakan paket System.MemoryNuGet
. Untuk.NET Core
proyek ini berhasil di luar kotak.sumber