Penjelasan dan Contoh Sederhana Strings c# Asp.Net


String adalah objek type Stringyang nilainya berupa teks. Secara internal, teks tersebut disimpan sebagai collection sekuensial read-only dari objek Char. Tidak ada karakter null-terminating pada akhir String C #; Oleh karena itu, String C # dapat berisi sejumlah karakter null tersemat ('\ 0'). Properti length dari sebuah String mewakili jumlah objek Char yang dikandungnya, bukan jumlah karakter Unicode. Untuk mengakses poin code Unicode individu dalam sebuah String, gunakan objek StringInfo.

  • String vs. System.String

Di C #, keyword string adalah alias string . Oleh karena itu, string dan string setara, dan kita dapat menggunakan konvensi penamaan mana pun yang kita inginkan. class string menyediakan banyak metod untuk menciptakan, memanipulasi, dan membandingkan string . Selain itu, bahasa C # membebani beberapa operator untuk menyederhanakan operasi string yang umum.

  • Declaring and Initializing Strings

Kita dapat mendeklarasikan dan menginisialisasi string dalam berbagai cara, seperti ditunjukkan pada contoh berikut:
// Declare without initializing.
string message1;

// Initialize to null.
string message2 = null;

// Initialize as an empty string.
// Use the Empty constant instead of the literal "".
string message3 = System.String.Empty;

//Initialize with a regular string literal.
string oldPath = "c:\\Program Files\\Microsoft Visual Studio 8.0";

// Initialize with a verbatim string literal.
string newPath = @"c:\Program Files\Microsoft Visual Studio 9.0";

// Use System.String if you prefer.
System.String greeting = "Hello World!";

// In local variables (i.e. within a method body)
// you can use implicit typing.
var temp = "I'm still a strongly-typed System.String!";

// Use a const string to prevent 'message4' from
// being used to store another string value.
const string message4 = "You can't get rid of me!";

// Use the String constructor only when creating
// a string from a char*, char[], or sbyte*. See
// System.String documentation for details.
char[] letters = { 'A', 'B', 'C' };
string alphabet = new string(letters);
Perhatikan bahwa kita tidak menggunakan operator new untuk membuat objek string kecuali saat menginisialisasi string dengan array karakter. Menginisialisasi sebuah string dengan nilai konstanta Kosong untuk membuat objek string baru yang stringnya memiliki panjang nol. String literal representasi string nol-panjang adalah "". Dengan menginisialisasi string dengan nilai Empty dan bukan null, kita dapat mengurangi kemungkinan terjadinya NullReferenceException. Gunakan metod IsNullOrEmpty (String) statis untuk memverifikasi nilai string sebelum kita mencoba mengaksesnya.

  • Immutability of String Objects

Objek string tidak dapat diubah: mereka tidak dapat diubah setelah dibuat. Semua metod String dan C # operator yang muncul untuk memodifikasi string benar-benar mengembalikan hasil dalam objek string baru. Dalam contoh berikut, ketika isi s1 dan s2 digabungkan untuk membentuk satu string, dua string asli tidak dimodifikasi. Operator + = menciptakan string baru yang berisi gabungan konten. Objek baru tersebut ditugaskan ke variabel s1, dan objek asli yang ditugaskan ke s1 dilepaskan untuk garbage collection karena tidak ada variabel lain yang menyimpan referensi untuk itu.
string s1 = "A string is more ";
string s2 = "than the sum of its chars.";

// Concatenate s1 and s2. This actually creates a new
// string object and stores it in s1, releasing the
// reference to the original object.
s1 += s2;

System.Console.WriteLine(s1);
// Output: A string is more than the sum of its chars.

Karena string "modification" sebenarnya adalah ciptaan string baru, kita harus berhati-hati saat membuat referensi ke string. Jika kita membuat referensi ke string, dan kemudian "modification" string asli, referensi akan terus menunjuk ke objek asli, bukan objek baru yang dibuat saat string dimodifikasi. Code berikut menggambarkan perilaku ini:
string s1 = "Hello ";
string s2 = s1;
s1 += "World";

System.Console.WriteLine(s2);
//Output: Hello

  • Regular and Verbatim String Literals

Gunakan string literal biasa saat kita harus memasukkan karakter escape yang disediakan oleh C #, seperti yang ditunjukkan pada contoh berikut:
string columns = "Column 1\tColumn 2\tColumn 3";
//Output: Column 1        Column 2        Column 3

string rows = "Row 1\r\nRow 2\r\nRow 3";
/* Output:
  Row 1
  Row 2
  Row 3
*/

string title = "\"The \u00C6olean Harp\", by Samuel Taylor Coleridge";
//Output: "The Æolean Harp", by Samuel Taylor Coleridge

Gunakan senar verbatim untuk kenyamanan dan keterbacaan yang lebih baik saat teks string berisi karakter garis miring terbalik, misalnya di jalur file. Karena string verbatim melestarikan karakter baris baru sebagai bagian dari teks string, mereka dapat digunakan untuk menginisialisasi string multiline. Gunakan tanda petik ganda untuk menyematkan tanda petik di dalam senar verbatim. Contoh berikut menunjukkan beberapa kegunaan umum untuk string verbatim:
string filePath = @"C:\Users\scoleridge\Documents\";
//Output: C:\Users\scoleridge\Documents\

string text = @"My pensive SARA ! thy soft cheek reclined
    Thus on mine arm, most soothing sweet it is
    To sit beside our Cot,...";
/* Output:
My pensive SARA ! thy soft cheek reclined
   Thus on mine arm, most soothing sweet it is
   To sit beside our Cot,... 
*/

string quote = @"Her name was ""Sara.""";
//Output: Her name was "Sara."

  • String Escape Sequences

Escape sequence Character name Unicode encoding \' Single quote 0x0027 \" Double quote 0x0022 \\ Backslash 0x005C \0 Null 0x0000 \a Alert 0x0007 \b Backspace 0x0008 \f Form feed 0x000C \n New line 0x000A \r Carriage return 0x000D \t Horizontal tab 0x0009 \U Unicode escape sequence for surrogate pairs. \Unnnnnnnn \u Unicode escape sequence \u0041 = "A" \v Vertical tab 0x000B \x Unicode escape sequence similar to "\u" except with variable length. \x0041 = "A"

  • Format Strings

String format adalah string yang isinya dapat ditentukan secara dinamis saat runtime. Kita membuat format string dengan menggunakan metod Format statis dan tempatkan embedding di braces yang akan diganti dengan nilai lainnya saat runtime. Contoh berikut menggunakan format string untuk menampilkan hasil setiap iterasi dari satu lingkaran:
class FormatString
{
    static void Main()
    {
        // Get user input.
        System.Console.WriteLine("Enter a number");
        string input = System.Console.ReadLine();

        // Convert the input string to an int.
        int j;
        System.Int32.TryParse(input, out j);

        // Write a different string each iteration.
        string s;
        for (int i = 0; i < 10; i++)
        {
            // A simple format string with no alignment formatting.
            s = System.String.Format("{0} times {1} = {2}", i, j, (i * j));
            System.Console.WriteLine(s);
        }

        //Keep the console window open in debug mode.
        System.Console.ReadKey();
    }
}

Satu kelebihan metode WriteLine mengambil format string sebagai parameter. Oleh karena itu, kita bisa saja menanamkan string format secara harfiah tanpa panggilan eksplisit ke metode ini. Namun, jika kita menggunakan metode WriteLine untuk menampilkan keluaran debug di jendela Visual Studio Output, kita harus secara eksplisit memanggil metod Format karena WriteLine hanya menerima string, bukan string format.

  • Substrings

Sebuah substring adalah urutan karakter yang terkandung dalam sebuah string. Gunakan metode Substring untuk membuat string baru dari bagian string asli. kita dapat mencari satu atau beberapa kejadian substring dengan menggunakan metode IndexOf. Gunakan metod Replace untuk mengganti semua kemunculan substring tertentu dengan string baru. Seperti metode Substring, Replace benar-benar mengembalikan string baru dan tidak memodifikasi string aslinya.
string s3 = "Visual C# Express";
System.Console.WriteLine(s3.Substring(7, 2));
// Output: "C#"

System.Console.WriteLine(s3.Replace("C#", "Basic"));
// Output: "Visual Basic Express"

// Index values are zero-based
int index = s3.IndexOf("C");
// index = 7

  • Accessing Individual Characters

kita dapat menggunakan notasi array dengan nilai indeks untuk memperoleh akses read-only ke karakter individual, seperti pada contoh berikut:
string s5 = "Printing backwards";

for (int i = 0; i < s5.Length; i++)
{
    System.Console.Write(s5[s5.Length - i - 1]);
}
// Output: "sdrawkcab gnitnirP"

Jika metod String tidak menyediakan fungsionalitas yang harus Anda modifikasi karakter individual dalam sebuah string,kita dapat menggunakan objek StringBuilder untuk memodifikasi karakter individu "in-place", dan kemudian membuat string baru untuk menyimpan hasilnya dengan menggunakan metode StringBuilder. Dalam contoh berikut, asumsikan bahwa Anda harus mengubah string asli dengan cara tertentu dan kemudian menyimpan hasilnya untuk penggunaan selanjutnya:
string question = "hOW DOES mICROSOFT wORD DEAL WITH THE cAPS lOCK KEY?";
System.Text.StringBuilder sb = new System.Text.StringBuilder(question);

for (int j = 0; j < sb.Length; j++)
{
    if (System.Char.IsLower(sb[j]) == true)
        sb[j] = System.Char.ToUpper(sb[j]);
    else if (System.Char.IsUpper(sb[j]) == true)
        sb[j] = System.Char.ToLower(sb[j]);
}
// Store the new string.
string corrected = sb.ToString();
System.Console.WriteLine(corrected);
// Output: How does Microsoft Word deal with the Caps Lock key?    
Previous
Next Post »