String.Substring Metode

Definisi

Mengambil substring dari instans ini.

Anggota ini kelebihan beban. Untuk informasi lengkap tentang anggota ini, termasuk sintaks, penggunaan, dan contoh, klik nama dalam daftar kelebihan beban.

Overload

Substring(Int32)

Mengambil substring dari instans ini. Substring dimulai pada posisi karakter tertentu dan berlanjut ke akhir string.

Substring(Int32, Int32)

Mengambil substring dari instans ini. Substring dimulai pada posisi karakter tertentu dan memiliki panjang yang ditentukan.

Substring(Int32)

Sumber:
String.Manipulation.cs
Sumber:
String.Manipulation.cs
Sumber:
String.Manipulation.cs

Mengambil substring dari instans ini. Substring dimulai pada posisi karakter tertentu dan berlanjut ke akhir string.

public:
 System::String ^ Substring(int startIndex);
public string Substring (int startIndex);
member this.Substring : int -> string
Public Function Substring (startIndex As Integer) As String

Parameter

startIndex
Int32

Posisi karakter awal substring berbasis nol dalam instans ini.

Mengembalikan

String yang setara dengan substring yang dimulai pada startIndex dalam instans ini, atau Empty jika startIndex sama dengan panjang instans ini.

Pengecualian

startIndex kurang dari nol atau lebih besar dari panjang instans ini.

Contoh

Contoh berikut menunjukkan mendapatkan substring dari string.

using namespace System;
using namespace System::Collections;

int main()
{
   array<String^>^info = { "Name: Felica Walker", "Title: Mz.",
                           "Age: 47", "Location: Paris", "Gender: F"};
   int found = 0;
   Console::WriteLine("The initial values in the array are:");
   for each (String^ s in info) 
      Console::WriteLine(s);

   Console::WriteLine("\nWe want to retrieve only the key information. That is:");
   for each (String^ s in info) { 
      found = s->IndexOf(": ");
      Console::WriteLine("   {0}", s->Substring(found + 2));
   }
}
// The example displays the following output:
//       The initial values in the array are:
//       Name: Felica Walker
//       Title: Mz.
//       Age: 47
//       Location: Paris
//       Gender: F
//       
//       We want to retrieve only the key information. That is:
//       Felica Walker
//       Mz.
//       47
//       Paris
//       F
string [] info = { "Name: Felica Walker", "Title: Mz.", 
                   "Age: 47", "Location: Paris", "Gender: F"};
int found = 0;

Console.WriteLine("The initial values in the array are:");
foreach (string s in info)
    Console.WriteLine(s);

Console.WriteLine("\nWe want to retrieve only the key information. That is:");        
foreach (string s in info) 
{
    found = s.IndexOf(": ");
    Console.WriteLine("   {0}", s.Substring(found + 2));
}

// The example displays the following output:
//       The initial values in the array are:
//       Name: Felica Walker
//       Title: Mz.
//       Age: 47
//       Location: Paris
//       Gender: F
//       
//       We want to retrieve only the key information. That is:
//          Felica Walker
//          Mz.
//          47
//          Paris
//          F
let info = 
    [| "Name: Felica Walker"; "Title: Mz."
       "Age: 47"; "Location: Paris"; "Gender: F" |]

printfn "The initial values in the array are:"
for s in info do
    printfn $"{s}"

printfn "\nWe want to retrieve only the key information. That is:"
for s in info do
    let found = s.IndexOf ": "
    printfn $"   {s.Substring(found + 2)}"

// The example displays the following output:
//       The initial values in the array are:
//       Name: Felica Walker
//       Title: Mz.
//       Age: 47
//       Location: Paris
//       Gender: F
//
//       We want to retrieve only the key information. That is:
//          Felica Walker
//          Mz.
//          47
//          Paris
//          F
Public Class SubStringTest
    Public Shared Sub Main()
        Dim info As String() = { "Name: Felica Walker", "Title: Mz.", 
                                 "Age: 47", "Location: Paris", "Gender: F"}
        Dim found As Integer = 0
       
        Console.WriteLine("The initial values in the array are:")
        For Each s As String In info
            Console.WriteLine(s)
        Next s

        Console.WriteLine(vbCrLf + "We want to retrieve only the key information. That is:")
        For Each s As String In info
            found = s.IndexOf(": ")
            Console.WriteLine("   {0}", s.Substring(found + 2))
        Next s
    End Sub 
End Class 
' The example displays the following output:
'       The initial values in the array are:
'       Name: Felica Walker
'       Title: Mz.
'       Age: 47
'       Location: Paris
'       Gender: F
'       
'       We want to retrieve only the key information. That is:
'          Felica Walker
'          Mz.
'          47
'          Paris
'          F

Contoh berikut menggunakan Substring metode untuk memisahkan pasangan kunci/nilai yang dibatasi oleh karakter yang sama dengan (=).

String[] pairs = { "Color1=red", "Color2=green", "Color3=blue",
                 "Title=Code Repository" };
foreach (var pair in pairs) 
{
    int position = pair.IndexOf("=");
    if (position < 0)
        continue;
    Console.WriteLine("Key: {0}, Value: '{1}'", 
                   pair.Substring(0, position),
                   pair.Substring(position + 1));
}                          

// The example displays the following output:
//     Key: Color1, Value: 'red'
//     Key: Color2, Value: 'green'
//     Key: Color3, Value: 'blue'
//     Key: Title, Value: 'Code Repository'
let pairs = 
    [| "Color1=red"; "Color2=green"; "Color3=blue"
       "Title=Code Repository" |]
for pair in pairs do
    let position = pair.IndexOf "="
    if position >= 0 then
        printfn $"Key: {pair.Substring(0, position)}, Value: '{pair.Substring(position + 1)}'"

// The example displays the following output:
//     Key: Color1, Value: 'red'
//     Key: Color2, Value: 'green'
//     Key: Color3, Value: 'blue'
//     Key: Title, Value: 'Code Repository'
Module Example
   Public Sub Main()
      Dim pairs() As String = { "Color1=red", "Color2=green", "Color3=blue",
                                "Title=Code Repository" }
      For Each pair In pairs
         Dim position As Integer = pair.IndexOf("=")
         If position < 0 then Continue For
         Console.WriteLine("Key: {0}, Value: '{1}'", 
                           pair.Substring(0, position),
                           pair.Substring(position + 1))
      Next                          
   End Sub
End Module
' The example displays the following output:
'     Key: Color1, Value: 'red'
'     Key: Color2, Value: 'green'
'     Key: Color3, Value: 'blue'
'     Key: Title, Value: 'Code Repository'

Metode IndexOf ini digunakan untuk mendapatkan posisi karakter yang sama dalam string. Panggilan ke Substring(Int32, Int32) metode mengekstrak nama kunci, yang dimulai dari karakter pertama dalam string dan memperluas jumlah karakter yang dikembalikan oleh panggilan ke IndexOf metode . Panggilan ke Substring(Int32) metode kemudian mengekstrak nilai yang ditetapkan ke kunci. Ini dimulai pada satu posisi karakter di luar karakter yang sama dan meluas ke akhir string.

Keterangan

Anda memanggil Substring(Int32) metode untuk mengekstrak substring dari string yang dimulai pada posisi karakter tertentu dan berakhir di akhir string. Posisi karakter awal berbasis nol; dengan kata lain, karakter pertama dalam string adalah pada indeks 0, bukan indeks 1. Untuk mengekstrak substring yang dimulai pada posisi karakter tertentu dan berakhir sebelum akhir string, panggil Substring(Int32, Int32) metode .

Catatan

Metode ini tidak mengubah nilai instans saat ini. Sebaliknya, ia mengembalikan string baru yang dimulai pada startIndex posisi dalam string saat ini.

Untuk mengekstrak substring yang dimulai dengan urutan karakter atau karakter tertentu, panggil metode seperti IndexOf atau IndexOf untuk mendapatkan nilai startIndex. Contoh kedua menggambarkan hal ini; ini mengekstrak nilai kunci yang memulai satu posisi karakter setelah = karakter.

Jika startIndex sama dengan nol, metode mengembalikan string asli yang tidak berubah.

Lihat juga

Berlaku untuk

Substring(Int32, Int32)

Sumber:
String.Manipulation.cs
Sumber:
String.Manipulation.cs
Sumber:
String.Manipulation.cs

Mengambil substring dari instans ini. Substring dimulai pada posisi karakter tertentu dan memiliki panjang yang ditentukan.

public:
 System::String ^ Substring(int startIndex, int length);
public string Substring (int startIndex, int length);
member this.Substring : int * int -> string
Public Function Substring (startIndex As Integer, length As Integer) As String

Parameter

startIndex
Int32

Posisi karakter awal substring berbasis nol dalam instans ini.

length
Int32

Jumlah karakter untuk substring.

Mengembalikan

String yang setara dengan substring panjang length yang dimulai pada startIndex dalam instans ini, atau Empty jika startIndex sama dengan panjang instans ini dan length nol.

Pengecualian

startIndex plus length menunjukkan posisi yang tidak ada dalam instans ini.

-atau-

startIndex atau length kurang dari nol.

Contoh

Contoh berikut mengilustrasikan panggilan sederhana ke Substring(Int32, Int32) metode yang mengekstrak dua karakter dari string yang dimulai pada posisi karakter keenam (yaitu, pada indeks lima).

String value = "This is a string.";
int startIndex = 5;
int length = 2;
String substring = value.Substring(startIndex, length);
Console.WriteLine(substring);

// The example displays the following output:
//       is
let value = "This is a string."
let startIndex = 5
let length = 2
let substring = value.Substring(startIndex, length)
printfn $"{substring}"

// The example displays the following output:
//       is
Module Example
   Public Sub Main()
      Dim value As String = "This is a string."
      Dim startIndex As Integer = 5
      Dim length As Integer = 2
      Dim substring As String = value.Substring(startIndex, length)
      Console.WriteLine(substring)
   End Sub
End Module
' The example displays the following output:
'       is

Contoh berikut menggunakan Substring(Int32, Int32) metode dalam tiga kasus berikut untuk mengisolasi substring dalam string. Dalam dua kasus, substring digunakan dalam perbandingan, dan dalam kasus ketiga pengecualian dilemparkan karena parameter yang tidak valid ditentukan.

  • Ini mengekstrak karakter tunggal pada posisi ketiga dalam string (pada indeks 2) dan membandingkannya dengan "c". Perbandingan trueini mengembalikan .

  • Ini mengekstrak karakter nol yang dimulai pada posisi keempat dalam string (pada indeks 3) dan meneruskannya ke IsNullOrEmpty metode . Ini mengembalikan true karena panggilan ke Substring metode mengembalikan String.Empty.

  • Ini mencoba untuk mengekstrak satu karakter mulai dari posisi keempat dalam string. Karena tidak ada karakter pada posisi itu, panggilan metode melemparkan ArgumentOutOfRangeException pengecualian.

string myString = "abc";
bool test1 = myString.Substring(2, 1).Equals("c"); // This is true.
Console.WriteLine(test1);
bool test2 = string.IsNullOrEmpty(myString.Substring(3, 0)); // This is true.
Console.WriteLine(test2);
try
{
   string str3 = myString.Substring(3, 1); // This throws ArgumentOutOfRangeException.
   Console.WriteLine(str3);
}
catch (ArgumentOutOfRangeException e)
{
   Console.WriteLine(e.Message);
}

// The example displays the following output:
//       True
//       True
//       Index and length must refer to a location within the string.
//       Parameter name: length
let myString = "abc"
let test1 = myString.Substring(2, 1).Equals "c" // This is true.
printfn $"{test1}"
let test2 = String.IsNullOrEmpty(myString.Substring(3, 0)) // This is true.
printfn $"{test2}"
try
    let str3 = myString.Substring(3, 1) // This throws ArgumentOutOfRangeException.
    printfn $"{str3}"
with :? ArgumentOutOfRangeException as e ->
    printfn $"{e.Message}"

// The example displays the following output:
//       True
//       True
//       Index and length must refer to a location within the string.
//       Parameter name: length
Public Class Sample
   Public Shared Sub Main()
      Dim myString As String = "abc"
      Dim test1 As Boolean = myString.Substring(2, 1).Equals("c") ' This is true.
      Console.WriteLine(test1)
      Dim test2 As Boolean = String.IsNullOrEmpty(myString.Substring(3, 0)) ' This is true.
      Console.WriteLine(test2)
      Try  
         Dim str3 As String = myString.Substring(3, 1) ' This throws ArgumentOutOfRangeException.
         Console.WriteLine(str3)
      Catch e As ArgumentOutOfRangeException
         Console.WriteLIne(e.Message)
      End Try   
   End Sub
End Class 
' The example displays the following output:
'       True
'       True
'       Index and length must refer to a location within the string.
'       Parameter name: length

Contoh berikut menggunakan Substring metode untuk memisahkan pasangan kunci/nilai yang dibatasi oleh karakter yang sama dengan (=).

String[] pairs = { "Color1=red", "Color2=green", "Color3=blue",
                 "Title=Code Repository" };
foreach (var pair in pairs) 
{
    int position = pair.IndexOf("=");
    if (position < 0)
        continue;
    Console.WriteLine("Key: {0}, Value: '{1}'", 
                   pair.Substring(0, position),
                   pair.Substring(position + 1));
}                          

// The example displays the following output:
//     Key: Color1, Value: 'red'
//     Key: Color2, Value: 'green'
//     Key: Color3, Value: 'blue'
//     Key: Title, Value: 'Code Repository'
let pairs = 
    [| "Color1=red"; "Color2=green"; "Color3=blue"
       "Title=Code Repository" |]
for pair in pairs do
    let position = pair.IndexOf "="
    if position >= 0 then
        printfn $"Key: {pair.Substring(0, position)}, Value: '{pair.Substring(position + 1)}'"

// The example displays the following output:
//     Key: Color1, Value: 'red'
//     Key: Color2, Value: 'green'
//     Key: Color3, Value: 'blue'
//     Key: Title, Value: 'Code Repository'
Module Example
   Public Sub Main()
      Dim pairs() As String = { "Color1=red", "Color2=green", "Color3=blue",
                                "Title=Code Repository" }
      For Each pair In pairs
         Dim position As Integer = pair.IndexOf("=")
         If position < 0 then Continue For
         Console.WriteLine("Key: {0}, Value: '{1}'", 
                           pair.Substring(0, position),
                           pair.Substring(position + 1))
      Next                          
   End Sub
End Module
' The example displays the following output:
'     Key: Color1, Value: 'red'
'     Key: Color2, Value: 'green'
'     Key: Color3, Value: 'blue'
'     Key: Title, Value: 'Code Repository'

Metode IndexOf ini digunakan untuk mendapatkan posisi karakter yang sama dalam string. Panggilan ke Substring(Int32, Int32) metode mengekstrak nama kunci, yang dimulai dari karakter pertama dalam string dan memperluas jumlah karakter yang dikembalikan oleh panggilan ke IndexOf metode . Panggilan ke Substring(Int32) metode kemudian mengekstrak nilai yang ditetapkan ke kunci. Ini dimulai pada satu posisi karakter di luar karakter yang sama dan meluas ke akhir string.

Keterangan

Anda memanggil Substring(Int32, Int32) metode untuk mengekstrak substring dari string yang dimulai pada posisi karakter tertentu dan berakhir sebelum akhir string. Posisi karakter awal berbasis nol; dengan kata lain, karakter pertama dalam string adalah pada indeks 0, bukan indeks 1. Untuk mengekstrak substring yang dimulai pada posisi karakter tertentu dan berlanjut ke akhir string, panggil Substring(Int32) metode .

Catatan

Metode ini tidak mengubah nilai instans saat ini. Sebaliknya, ia mengembalikan string baru dengan length karakter yang dimulai dari startIndex posisi dalam string saat ini.

Parameter length menunjukkan jumlah total karakter yang akan diekstrak dari instans string saat ini. Ini termasuk karakter awal yang ditemukan pada indeks startIndex. Dengan kata lain, Substring metode ini mencoba mengekstrak karakter dari indeks ke indeks + startIndexstartIndexlength - 1.

Untuk mengekstrak substring yang dimulai dengan urutan karakter atau karakter tertentu, panggil metode seperti IndexOf atau LastIndexOf untuk mendapatkan nilai startIndex.

Jika substring harus meluas dari startIndex ke urutan karakter tertentu, Anda dapat memanggil metode seperti IndexOf atau LastIndexOf untuk mendapatkan indeks karakter akhir atau urutan karakter. Anda kemudian dapat mengonversi nilai tersebut menjadi posisi indeks dalam string sebagai berikut:

  • Jika Anda telah mencari satu karakter yaitu menandai akhir substring, length parameter sama dengan endIndexstartIndex - + 1, di mana endIndex adalah nilai pengembalian dari IndexOf metode atau .LastIndexOf Contoh berikut mengekstrak blok berkelanjutan karakter "b" dari string.

    String s = "aaaaabbbcccccccdd";
    Char charRange = 'b';
    int startIndex = s.IndexOf(charRange);
    int endIndex = s.LastIndexOf(charRange);
    int length = endIndex - startIndex + 1;
    Console.WriteLine("{0}.Substring({1}, {2}) = {3}",
                    s, startIndex, length, 
                    s.Substring(startIndex, length));
    
    // The example displays the following output:
    //       aaaaabbbcccccccdd.Substring(5, 3) = bbb
    
    let s = "aaaaabbbcccccccdd"
    let charRange = 'b'
    let startIndex = s.IndexOf charRange
    let endIndex = s.LastIndexOf charRange
    let length = endIndex - startIndex + 1
    printfn $"{s}.Substring({startIndex}, {length}) = {s.Substring(startIndex, length)}"
    
    // The example displays the following output:
    //       aaaaabbbcccccccdd.Substring(5, 3) = bbb
    
    Module Example
       Public Sub Main()
          Dim s As String = "aaaaabbbcccccccdd"
          Dim charRange As Char = "b"c
          Dim startIndex As Integer = s.Indexof(charRange)
          Dim endIndex As Integer = s.LastIndexOf(charRange)
          Dim length = endIndex - startIndex + 1
          Console.WriteLine("{0}.Substring({1}, {2}) = {3}",
                            s, startIndex, length, 
                            s.Substring(startIndex, length))
       End Sub
    End Module
    ' The example displays the following output:
    '     aaaaabbbcccccccdd.Substring(5, 3) = bbb
    
  • Jika Anda telah mencari beberapa karakter yang menandai akhir substring, length parameter sama dengan - + startIndexendMatchLengthendIndex , di mana endIndex adalah nilai kembali dari IndexOf metode atau LastIndexOf , dan endMatchLength merupakan panjang urutan karakter yang menandai akhir substring. Contoh berikut mengekstrak blok teks yang berisi elemen XML <definition> .

    String s = "<term>extant<definition>still in existence</definition></term>";
    String searchString = "<definition>";
    int startIndex = s.IndexOf(searchString);
    searchString = "</" + searchString.Substring(1);
    int endIndex = s.IndexOf(searchString);
    String substring = s.Substring(startIndex, endIndex + searchString.Length - startIndex);
    Console.WriteLine("Original string: {0}", s);
    Console.WriteLine("Substring;       {0}", substring); 
    
    // The example displays the following output:
    //     Original string: <term>extant<definition>still in existence</definition></term>
    //     Substring;       <definition>still in existence</definition>
    
    let s = "<term>extant<definition>still in existence</definition></term>"
    let searchString = "<definition>"
    let startIndex = s.IndexOf(searchString)
    let searchString = "</" + searchString.Substring 1
    let endIndex = s.IndexOf searchString
    let substring = s.Substring(startIndex, endIndex + searchString.Length - startIndex)
    printfn $"Original string: {s}"
    printfn $"Substring;       {substring}"
    
    // The example displays the following output:
    //     Original string: <term>extant<definition>still in existence</definition></term>
    //     Substring;       <definition>still in existence</definition>
    
    Module Example
       Public Sub Main()
          Dim s As String = "<term>extant<definition>still in existence</definition></term>"
          Dim searchString As String = "<definition>"
          Dim startindex As Integer = s.IndexOf(searchString)
          searchString = "</" + searchString.Substring(1)
          Dim endIndex As Integer = s.IndexOf(searchString)
          Dim substring As String = s.Substring(startIndex, endIndex + searchString.Length - StartIndex)
          Console.WriteLine("Original string: {0}", s)
          Console.WriteLine("Substring;       {0}", substring) 
       End Sub
    End Module
    ' The example displays the following output:
    '   Original string: <term>extant<definition>still in existence</definition></term>
    '   Substring;       <definition>still in existence</definition>
    
  • Jika urutan karakter atau karakter tidak disertakan di akhir substring, length parameter sama dengan endIndex - startIndex, di mana endIndex adalah nilai pengembalian dari IndexOf metode atau .LastIndexOf

Jika startIndex sama dengan nol dan length sama dengan panjang string saat ini, metode mengembalikan string asli yang tidak berubah.

Lihat juga

Berlaku untuk