Bagaimana cara mengabaikan 10 karakter pertama dari sebuah string?
Memasukkan:
str = "hello world!";
Keluaran:
d!
Bagaimana cara mengabaikan 10 karakter pertama dari sebuah string?
Memasukkan:
str = "hello world!";
Keluaran:
d!
Jawaban:
str = "hello world!";
str.Substring(10, str.Length-10)
Anda perlu melakukan pemeriksaan panjang jika tidak, ini akan menimbulkan kesalahan
str = str.Remove(0,10);
Menghapus 10 karakter pertama
atau
str = str.Substring(10);
Membuat substring mulai dari karakter ke-11 hingga akhir string.
Untuk tujuan Anda, mereka harus bekerja secara identik.
Substring mungkin yang Anda inginkan, seperti yang ditunjukkan orang lain. Tetapi hanya untuk menambahkan opsi lain ke dalam campuran ...
string result = string.Join(string.Empty, str.Skip(10));
Anda bahkan tidak perlu memeriksa panjangnya! :) Jika kurang dari 10 karakter, Anda mendapatkan string kosong.
Substring memiliki dua metode Overloading:
public string Substring(int startIndex);//The substring starts at a specified character position and continues to the end of the string.
public string Substring(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.
Anda Dapat Menghapus Char menggunakan Baris di bawah ini,
: - Pertama periksa bahwa String memiliki cukup banyak karakter untuk dihapus , seperti
string temp="Hello Stack overflow";
if(temp.Length>10)
{
string textIWant = temp.Remove(0, 10);
}
Gunakan metode substring.
string s = "hello world";
s=s.Substring(10, s.Length-10);
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.
string s = "hello world!";
s = s.Substring(Math.Max(0, Math.Min(10, s.Length - 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.
Mulai dari C # 8, Anda cukup menggunakan Range Operator. Ini cara yang lebih efisien dan lebih baik untuk menangani kasus seperti itu.
string AnString = "Hello World!";
AnString = AnString[10..];
C# 8tidak didukung saat menargetkan .NET Framework.
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.Memory NuGet . Untuk .NET Coreproyek ini berhasil di luar kotak.
static void Main(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();
}