String.EndsWith 方法

定义

确定此字符串实例的结尾是否与指定的字符串匹配。Determines whether the end of this string instance matches a specified string.

重载

EndsWith(Char)

确定此字符串实例的结尾是否与指定的字符匹配。Determines whether the end of this string instance matches the specified character.

EndsWith(String)

确定此字符串实例的结尾是否与指定的字符串匹配。Determines whether the end of this string instance matches the specified string.

EndsWith(String, StringComparison)

确定使用指定的比较选项进行比较时此字符串实例的结尾是否与指定的字符串匹配。Determines whether the end of this string instance matches the specified string when compared using the specified comparison option.

EndsWith(String, Boolean, CultureInfo)

确定在使用指定的区域性进行比较时此字符串实例的结尾是否与指定的字符串匹配。Determines whether the end of this string instance matches the specified string when compared using the specified culture.

EndsWith(Char)

确定此字符串实例的结尾是否与指定的字符匹配。Determines whether the end of this string instance matches the specified character.

public:
 bool EndsWith(char value);
public bool EndsWith (char value);
member this.EndsWith : char -> bool
Public Function EndsWith (value As Char) As Boolean

参数

value
Char

要与此实例末尾的字符进行比较的字符。The character to compare to the character at the end of this instance.

返回

如果 true 与此实例的末尾匹配,则为 value;否则为 falsetrue if value matches the end of this instance; otherwise, false.

注解

此方法使用当前区域性执行区分大小写和区分区域性的比较。This method performs a case-sensitive and culture-sensitive comparison using the current culture.

EndsWith(String)

确定此字符串实例的结尾是否与指定的字符串匹配。Determines whether the end of this string instance matches the specified string.

public:
 bool EndsWith(System::String ^ value);
public bool EndsWith (string value);
member this.EndsWith : string -> bool
Public Function EndsWith (value As String) As Boolean

参数

value
String

要与此实例末尾的子字符串进行比较的字符串。The string to compare to the substring at the end of this instance.

返回

如果 true 与此实例的末尾匹配,则为 value;否则为 falsetrue if value matches the end of this instance; otherwise, false.

异常

valuenullvalue is null.

示例

下面的示例指示数组中的每个字符串是否以句点(".")结尾。The following example indicates whether each string in an array ends with a period (".").

using System;

public class Example
{
   public static void Main()
   {
      String[] strings = { "This is a string.", "Hello!", "Nothing.", 
                           "Yes.", "randomize" };
      foreach (var value in strings) {
         bool endsInPeriod = value.EndsWith(".");
         Console.WriteLine("'{0}' ends in a period: {1}", 
                           value, endsInPeriod);
      }                            
   }
}
// The example displays the following output:
//       'This is a string.' ends in a period: True
//       'Hello!' ends in a period: False
//       'Nothing.' ends in a period: True
//       'Yes.' ends in a period: True
//       'randomize' ends in a period: False
Module Example
   Public Sub Main()
      Dim strings() As String = { "This is a string.", "Hello!", 
                                  "Nothing.", "Yes.", "randomize" }
      For Each value In strings
         Dim endsInPeriod As Boolean = value.EndsWith(".")
         Console.WriteLine("'{0}' ends in a period: {1}", 
                           value, endsInPeriod)
      Next                            
   End Sub
End Module
' The example displays the following output:
'       'This is a string.' ends in a period: True
'       'Hello!' ends in a period: False
'       'Nothing.' ends in a period: True
'       'Yes.' ends in a period: True
'       'randomize' ends in a period: False

下面的示例定义了一个 StripEndTags 方法,该方法使用 EndsWith(String) 方法从行的末尾删除 HTML 结束标记。The following example defines a StripEndTags method that uses the EndsWith(String) method to remove HTML end tags from the end of a line. 请注意,将以递归方式调用 StripEndTags 方法,以确保删除行末尾的多个 HTML 结束标记。Note that the StripEndTags method is called recursively to ensure that multiple HTML end tags at the end of the line are removed.

using namespace System;
using namespace System::Collections;

String^ StripEndTags( String^ item )
{
   bool found = false;
   
   // try to find a tag at the end of the line using EndsWith
   if ( item->Trim()->EndsWith( ">" ) )
   {
      
      // now search for the opening tag...
      int lastLocation = item->LastIndexOf( "</" );
      
      // remove the identified section, if it is a valid region
      if ( lastLocation >= 0 ) {
            item = item->Substring( 0, lastLocation );
            found = true;
      }
   }

   if (found) item = StripEndTags(item);
   
   return item;
}

int main()
{
   
   // process an input file that contains html tags.
   // this sample checks for multiple tags at the end of the line, rather than simply
   // removing the last one.
   // note: HTML markup tags always end in a greater than symbol (>).
   array<String^>^strSource = {"<b>This is bold text</b>","<H1>This is large Text</H1>","<b><i><font color=green>This has multiple tags</font></i></b>","<b>This has <i>embedded</i> tags.</b>","This line simply ends with a greater than symbol, it should not be modified>"};
   Console::WriteLine( "The following lists the items before the ends have been stripped:" );
   Console::WriteLine( "-----------------------------------------------------------------" );
   
   // print out the initial array of strings
   IEnumerator^ myEnum1 = strSource->GetEnumerator();
   while ( myEnum1->MoveNext() )
   {
      String^ s = safe_cast<String^>(myEnum1->Current);
      Console::WriteLine( s );
   }

   Console::WriteLine();
   Console::WriteLine( "The following lists the items after the ends have been stripped:" );
   Console::WriteLine( "----------------------------------------------------------------" );
   
   // Display the array of strings.
   IEnumerator^ myEnum2 = strSource->GetEnumerator();
   while ( myEnum2->MoveNext() )
   {
      String^ s = safe_cast<String^>(myEnum2->Current);
      Console::WriteLine( StripEndTags( s ) );
   }
}
// The example displays the following output:
//    The following lists the items before the ends have been stripped:
//    -----------------------------------------------------------------
//    <b>This is bold text</b>
//    <H1>This is large Text</H1>
//    <b><i><font color=green>This has multiple tags</font></i></b>
//    <b>This has <i>embedded</i> tags.</b>
//    This line simply ends with a greater than symbol, it should not be modified>
//    
//    The following lists the items after the ends have been stripped:
//    ----------------------------------------------------------------
//    <b>This is bold text
//    <H1>This is large Text
//    <b><i><font color=green>This has multiple tags
//    <b>This has <i>embedded</i> tags.
//    This line simply ends with a greater than symbol, it should not be modified>
using System;

public class EndsWithTest {
    public static void Main() {

        // process an input file that contains html tags.
        // this sample checks for multiple tags at the end of the line, rather than simply
        // removing the last one.
        // note: HTML markup tags always end in a greater than symbol (>).

        string [] strSource = { "<b>This is bold text</b>", "<H1>This is large Text</H1>",
                "<b><i><font color=green>This has multiple tags</font></i></b>",
                "<b>This has <i>embedded</i> tags.</b>",
                "This line simply ends with a greater than symbol, it should not be modified>" };

        Console.WriteLine("The following lists the items before the ends have been stripped:");
        Console.WriteLine("-----------------------------------------------------------------");

        // print out the initial array of strings
        foreach ( string s in strSource )
            Console.WriteLine( s );

        Console.WriteLine();

        Console.WriteLine("The following lists the items after the ends have been stripped:");
        Console.WriteLine("----------------------------------------------------------------");

        // print out the array of strings
        foreach (var s in strSource)
            Console.WriteLine(StripEndTags(s));
    }

    private static string StripEndTags( string item ) {

        bool found = false;
            
        // try to find a tag at the end of the line using EndsWith
        if (item.Trim().EndsWith(">")) {
                
            // now search for the opening tag...
            int lastLocation = item.LastIndexOf( "</" );

            // remove the identified section, if it is a valid region
            if ( lastLocation >= 0 ) {
                found = true;
                item =  item.Substring( 0, lastLocation );
            }    
        }

        if (found)
           item = StripEndTags(item);
           
        return item;
    }
}
// The example displays the following output:
//    The following lists the items before the ends have been stripped:
//    -----------------------------------------------------------------
//    <b>This is bold text</b>
//    <H1>This is large Text</H1>
//    <b><i><font color=green>This has multiple tags</font></i></b>
//    <b>This has <i>embedded</i> tags.</b>
//    This line simply ends with a greater than symbol, it should not be modified>
//    
//    The following lists the items after the ends have been stripped:
//    ----------------------------------------------------------------
//    <b>This is bold text
//    <H1>This is large Text
//    <b><i><font color=green>This has multiple tags
//    <b>This has <i>embedded</i> tags.
//    This line simply ends with a greater than symbol, it should not be modified>
Public Module Example
    Public Sub Main()
        Dim strSource() As String = { "<b>This is bold text</b>", 
                    "<H1>This is large Text</H1>", 
                    "<b><i><font color = green>This has multiple tags</font></i></b>", 
                    "<b>This has <i>embedded</i> tags.</b>", 
                    "This line simply ends with a greater than symbol, it should not be modified>" }

        Console.WriteLine("The following lists the items before the ends have been stripped:")
        Console.WriteLine("-----------------------------------------------------------------")

        ' Display the initial array of strings.
        For Each s As String In  strSource
            Console.WriteLine(s)
        Next
        Console.WriteLine()

        Console.WriteLine("The following lists the items after the ends have been stripped:")
        Console.WriteLine("----------------------------------------------------------------")

        ' Display the array of strings.
        For Each s As String In strSource
            Console.WriteLine(StripEndTags(s))
        Next 
    End Sub 

    Private Function StripEndTags(item As String) As String
        Dim found As Boolean = False
        
        ' Try to find a tag at the end of the line using EndsWith.
        If item.Trim().EndsWith(">") Then
            ' now search for the opening tag...
            Dim lastLocation As Integer = item.LastIndexOf("</")
            If lastLocation >= 0 Then
                found = True
                
                ' Remove the identified section, if it is a valid region.
                item = item.Substring(0, lastLocation)
            End If
        End If
        
        If found Then item = StripEndTags(item)
        Return item
    End Function 
End Module
' The example displays the following output:
'    The following lists the items before the ends have been stripped:
'    -----------------------------------------------------------------
'    <b>This is bold text</b>
'    <H1>This is large Text</H1>
'    <b><i><font color = green>This has multiple tags</font></i></b>
'    <b>This has <i>embedded</i> tags.</b>
'    This line simply ends with a greater than symbol, it should not be modified>
'    
'    The following lists the items after the ends have been stripped:
'    ----------------------------------------------------------------
'    <b>This is bold text
'    <H1>This is large Text
'    <b><i><font color = green>This has multiple tags
'    <b>This has <i>embedded</i> tags.
'    This line simply ends with a greater than symbol, it should not be modified>

注解

此方法将 value 与此实例末尾的子字符串进行比较,其长度与 value相同,并返回一个指示是否相等的指示。This method compares value to the substring at the end of this instance that is the same length as value, and returns an indication whether they are equal. 若要相等,value 必须是对此实例的引用,或与此实例的末尾匹配。To be equal, value must be a reference to this same instance or match the end of this instance.

此方法使用当前区域性执行 word (区分大小写和区分区域性)比较。This method performs a word (case-sensitive and culture-sensitive) comparison using the current culture.

调用方说明

使用字符串的最佳做法中所述,建议你避免调用替换默认值的字符串比较方法,并改为调用需要显式指定参数的方法。As explained in Best Practices for Using Strings, we recommend that you avoid calling string comparison methods that substitute default values and instead call methods that require parameters to be explicitly specified. 若要通过使用当前区域性的字符串比较规则来确定字符串是否以特定子字符串结尾,请使用其 comparisonType 参数的值 CurrentCulture 调用 EndsWith(String, StringComparison) 方法重载。To determine whether a string ends with a particular substring by using the string comparison rules of the current culture, call the EndsWith(String, StringComparison) method overload with a value of CurrentCulture for its comparisonType parameter.

另请参阅

EndsWith(String, StringComparison)

确定使用指定的比较选项进行比较时此字符串实例的结尾是否与指定的字符串匹配。Determines whether the end of this string instance matches the specified string when compared using the specified comparison option.

public:
 bool EndsWith(System::String ^ value, StringComparison comparisonType);
[System.Runtime.InteropServices.ComVisible(false)]
public bool EndsWith (string value, StringComparison comparisonType);
member this.EndsWith : string * StringComparison -> bool
Public Function EndsWith (value As String, comparisonType As StringComparison) As Boolean

参数

value
String

要与此实例末尾的子字符串进行比较的字符串。The string to compare to the substring at the end of this instance.

comparisonType
StringComparison

枚举值之一,用于确定如何比较此字符串与 valueOne of the enumeration values that determines how this string and value are compared.

返回

如果 true 参数与此字符串的末尾匹配,则为 value;否则为 falsetrue if the value parameter matches the end of this string; otherwise, false.

属性

异常

valuenullvalue is null.

comparisonType 不是 StringComparison 值。comparisonType is not a StringComparison value.

示例

下面的示例确定字符串是否以特定子字符串结束。The following example determines whether a string ends with a particular substring. 结果受区域性选择的影响,是否忽略大小写,以及是否执行序号比较。The results are affected by the choice of culture, whether case is ignored, and whether an ordinal comparison is performed.

// This example demonstrates the 
// System.String.EndsWith(String, StringComparison) method.

using namespace System;
using namespace System::Threading;

void Test(String^ testString, String^ searchString, 
     StringComparison comparison)
{
    String^ resultFormat = "\"{0}\" {1} with \"{2}\".";
    String^ resultString = "does not end";

    if (testString->EndsWith(searchString, comparison))
    {
        resultString = "ends";
    }
    Console::WriteLine(resultFormat, testString, resultString, searchString);
}

int main()
{
    String^ introMessage =
        "Determine whether a string ends with another string, " +
        "using\ndifferent values of StringComparison.";

    array<StringComparison>^ comparisonValues = {
        StringComparison::CurrentCulture,
        StringComparison::CurrentCultureIgnoreCase,
        StringComparison::InvariantCulture,
        StringComparison::InvariantCultureIgnoreCase,
        StringComparison::Ordinal,
        StringComparison::OrdinalIgnoreCase};

    Console::Clear();
    Console::WriteLine(introMessage);

    // Display the current culture because the culture-specific comparisons
    // can produce different results with different cultures.
    Console::WriteLine("The current culture is {0}.\n",
        Thread::CurrentThread->CurrentCulture->Name);
    // Perform two tests for each StringComparison
    for each (StringComparison stringCmp in comparisonValues)
    {
        Console::WriteLine("StringComparison.{0}:", stringCmp);
        Test("abcXYZ", "XYZ", stringCmp);
        Test("abcXYZ", "xyz", stringCmp);
        Console::WriteLine();
    }
}

/*
This code example produces the following results:

Determine whether a string ends with another string, using
different values of StringComparison.
The current culture is en-US.

StringComparison.CurrentCulture:
"abcXYZ" ends with "XYZ".
"abcXYZ" does not end with "xyz".

StringComparison.CurrentCultureIgnoreCase:
"abcXYZ" ends with "XYZ".
"abcXYZ" ends with "xyz".

StringComparison.InvariantCulture:
"abcXYZ" ends with "XYZ".
"abcXYZ" does not end with "xyz".

StringComparison.InvariantCultureIgnoreCase:
"abcXYZ" ends with "XYZ".
"abcXYZ" ends with "xyz".

StringComparison.Ordinal:
"abcXYZ" ends with "XYZ".
"abcXYZ" does not end with "xyz".

StringComparison.OrdinalIgnoreCase:
"abcXYZ" ends with "XYZ".
"abcXYZ" ends with "xyz".

*/
// This example demonstrates the 
// System.String.EndsWith(String, StringComparison) method.

using System;
using System.Threading;

class Sample 
{
    public static void Main() 
    {
    string intro = "Determine whether a string ends with another string, " +
                   "using\n  different values of StringComparison.";

    StringComparison[] scValues = {
        StringComparison.CurrentCulture,
        StringComparison.CurrentCultureIgnoreCase,
        StringComparison.InvariantCulture,
        StringComparison.InvariantCultureIgnoreCase,
        StringComparison.Ordinal,
        StringComparison.OrdinalIgnoreCase };

//
    Console.Clear();
    Console.WriteLine(intro);

// Display the current culture because the culture-specific comparisons
// can produce different results with different cultures.
    Console.WriteLine("The current culture is {0}.\n", 
                       Thread.CurrentThread.CurrentCulture.Name);

// Determine whether three versions of the letter I are equal to each other. 
    foreach (StringComparison sc in scValues)
        {
        Console.WriteLine("StringComparison.{0}:", sc);
        Test("abcXYZ", "XYZ", sc);
        Test("abcXYZ", "xyz", sc);
        Console.WriteLine();
        }
    }

    protected static void Test(string x, string y, StringComparison comparison)
    {
    string resultFmt = "\"{0}\" {1} with \"{2}\".";
    string result = "does not end";
//
    if (x.EndsWith(y, comparison))
        result = "ends";
    Console.WriteLine(resultFmt, x, result, y);
    }
}

/*
This code example produces the following results:

Determine whether a string ends with another string, using
  different values of StringComparison.
The current culture is en-US.

StringComparison.CurrentCulture:
"abcXYZ" ends with "XYZ".
"abcXYZ" does not end with "xyz".

StringComparison.CurrentCultureIgnoreCase:
"abcXYZ" ends with "XYZ".
"abcXYZ" ends with "xyz".

StringComparison.InvariantCulture:
"abcXYZ" ends with "XYZ".
"abcXYZ" does not end with "xyz".

StringComparison.InvariantCultureIgnoreCase:
"abcXYZ" ends with "XYZ".
"abcXYZ" ends with "xyz".

StringComparison.Ordinal:
"abcXYZ" ends with "XYZ".
"abcXYZ" does not end with "xyz".

StringComparison.OrdinalIgnoreCase:
"abcXYZ" ends with "XYZ".
"abcXYZ" ends with "xyz".

*/
' This example demonstrates the 
' System.String.EndsWith(String, StringComparison) method.

Imports System.Threading

Class Sample
    Public Shared Sub Main() 
        Dim intro As String = "Determine whether a string ends with another string, " & _
                              "using" & vbCrLf & "  different values of StringComparison."
        
        Dim scValues As StringComparison() =  { _
                        StringComparison.CurrentCulture, _
                        StringComparison.CurrentCultureIgnoreCase, _
                        StringComparison.InvariantCulture, _
                        StringComparison.InvariantCultureIgnoreCase, _
                        StringComparison.Ordinal, _
                        StringComparison.OrdinalIgnoreCase }
        '
        Console.Clear()
        Console.WriteLine(intro)
        
        ' Display the current culture because the culture-specific comparisons
        ' can produce different results with different cultures.
        Console.WriteLine("The current culture is {0}." & vbCrLf, _
                           Thread.CurrentThread.CurrentCulture.Name)

        ' Determine whether three versions of the letter I are equal to each other. 
        Dim sc As StringComparison
        For Each sc In  scValues
            Console.WriteLine("StringComparison.{0}:", sc)
            Test("abcXYZ", "XYZ", sc)
            Test("abcXYZ", "xyz", sc)
            Console.WriteLine()
        Next sc
    
    End Sub
    
    
    Protected Shared Sub Test(ByVal x As String, ByVal y As String, _
                              ByVal comparison As StringComparison) 
        Dim resultFmt As String = """{0}"" {1} with ""{2}""."
        Dim result As String = "does not end"
        '
        If x.EndsWith(y, comparison) Then
            result = "ends"
        End If
        Console.WriteLine(resultFmt, x, result, y)
    
    End Sub
End Class

'
'This code example produces the following results:
'
'Determine whether a string ends with another string, using
'  different values of StringComparison.
'The current culture is en-US.
'
'StringComparison.CurrentCulture:
'"abcXYZ" ends with "XYZ".
'"abcXYZ" does not end with "xyz".
'
'StringComparison.CurrentCultureIgnoreCase:
'"abcXYZ" ends with "XYZ".
'"abcXYZ" ends with "xyz".
'
'StringComparison.InvariantCulture:
'"abcXYZ" ends with "XYZ".
'"abcXYZ" does not end with "xyz".
'
'StringComparison.InvariantCultureIgnoreCase:
'"abcXYZ" ends with "XYZ".
'"abcXYZ" ends with "xyz".
'
'StringComparison.Ordinal:
'"abcXYZ" ends with "XYZ".
'"abcXYZ" does not end with "xyz".
'
'StringComparison.OrdinalIgnoreCase:
'"abcXYZ" ends with "XYZ".
'"abcXYZ" ends with "xyz".
'

注解

EndsWith 方法将 value 参数与此字符串末尾的子字符串进行比较,并返回一个值,该值指示它们是否相等。The EndsWith method compares the value parameter to the substring at the end of this string and returns a value that indicates whether they are equal. 若要相等,value 必须是对此相同字符串的引用、必须为空字符串("")或必须与此字符串的末尾匹配。To be equal, value must be a reference to this same string, must be the empty string (""), or must match the end of this string. EndsWith 方法执行的比较的类型取决于 comparisonType 参数的值。The type of comparison performed by the EndsWith method depends on the value of the comparisonType parameter.

另请参阅

EndsWith(String, Boolean, CultureInfo)

确定在使用指定的区域性进行比较时此字符串实例的结尾是否与指定的字符串匹配。Determines whether the end of this string instance matches the specified string when compared using the specified culture.

public:
 bool EndsWith(System::String ^ value, bool ignoreCase, System::Globalization::CultureInfo ^ culture);
public bool EndsWith (string value, bool ignoreCase, System.Globalization.CultureInfo culture);
member this.EndsWith : string * bool * System.Globalization.CultureInfo -> bool
Public Function EndsWith (value As String, ignoreCase As Boolean, culture As CultureInfo) As Boolean

参数

value
String

要与此实例末尾的子字符串进行比较的字符串。The string to compare to the substring at the end of this instance.

ignoreCase
Boolean

若要在比较过程中忽略大小写,则为 true;否则为 falsetrue to ignore case during the comparison; otherwise, false.

culture
CultureInfo

确定如何对此实例与 value 进行比较的区域性信息。Cultural information that determines how this instance and value are compared. 如果 culturenull,则使用当前区域性。If culture is null, the current culture is used.

返回

如果 true 参数与此字符串的末尾匹配,则为 value;否则为 falsetrue if the value parameter matches the end of this string; otherwise, false.

异常

valuenullvalue is null.

示例

下面的示例确定字符串是否出现在另一个字符串的末尾。The following example determines whether a string occurs at the end of another string. 使用区分大小写、不区分大小写和影响搜索结果的不同区域性多次调用 EndsWith 方法。The EndsWith method is called several times using case sensitivity, case insensitivity, and different cultures that influence the results of the search.

// This code example demonstrates the 
// System.String.EndsWith(String, ..., CultureInfo) method.

using System;
using System.Threading;
using System.Globalization;

class Sample 
{
    public static void Main() 
    {
    string msg1 = "Search for the target string \"{0}\" in the string \"{1}\".\n";
    string msg2 = "Using the {0} - \"{1}\" culture:";
    string msg3 = "  The string to search ends with the target string: {0}";
    bool result = false;
    CultureInfo ci;

// Define a target string to search for.
// U+00c5 = LATIN CAPITAL LETTER A WITH RING ABOVE
    string capitalARing = "\u00c5";

// Define a string to search. 
// The result of combining the characters LATIN SMALL LETTER A and COMBINING 
// RING ABOVE (U+0061, U+030a) is linguistically equivalent to the character 
// LATIN SMALL LETTER A WITH RING ABOVE (U+00e5).
    string xyzARing = "xyz" + "\u0061\u030a";

// Clear the screen and display an introduction.
    Console.Clear();

// Display the string to search for and the string to search.
    Console.WriteLine(msg1, capitalARing, xyzARing);

// Search using English-United States culture.
    ci = new CultureInfo("en-US");
    Console.WriteLine(msg2, ci.DisplayName, ci.Name);

    Console.WriteLine("Case sensitive:");
    result = xyzARing.EndsWith(capitalARing, false, ci);
    Console.WriteLine(msg3, result);

    Console.WriteLine("Case insensitive:");
    result = xyzARing.EndsWith(capitalARing, true, ci);
    Console.WriteLine(msg3, result);
    Console.WriteLine();

// Search using Swedish-Sweden culture.
    ci = new CultureInfo("sv-SE");
    Console.WriteLine(msg2, ci.DisplayName, ci.Name);

    Console.WriteLine("Case sensitive:");
    result = xyzARing.EndsWith(capitalARing, false, ci);
    Console.WriteLine(msg3, result);

    Console.WriteLine("Case insensitive:");
    result = xyzARing.EndsWith(capitalARing, true, ci);
    Console.WriteLine(msg3, result);
    }
}

/*
Note: This code example was executed on a console whose user interface 
culture is "en-US" (English-United States).

This code example produces the following results:

Search for the target string "Å" in the string "xyza°".

Using the English (United States) - "en-US" culture:
Case sensitive:
  The string to search ends with the target string: False
Case insensitive:
  The string to search ends with the target string: True

Using the Swedish (Sweden) - "sv-SE" culture:
Case sensitive:
  The string to search ends with the target string: False
Case insensitive:
  The string to search ends with the target string: False

*/
' This code example demonstrates the 
' System.String.EndsWith(String, ..., CultureInfo) method.

Imports System.Threading
Imports System.Globalization

Class Sample
    Public Shared Sub Main() 
        Dim msg1 As String = "Search for the target string ""{0}"" in the string ""{1}""." & vbCrLf
        Dim msg2 As String = "Using the {0} - ""{1}"" culture:"
        Dim msg3 As String = "  The string to search ends with the target string: {0}"
        Dim result As Boolean = False
        Dim ci As CultureInfo
        
        ' Define a target string to search for.
        ' U+00c5 = LATIN CAPITAL LETTER A WITH RING ABOVE
        Dim capitalARing As String = "Å"
        
        ' Define a string to search. 
        ' The result of combining the characters LATIN SMALL LETTER A and COMBINING 
        ' RING ABOVE (U+0061, U+030a) is linguistically equivalent to the character 
        ' LATIN SMALL LETTER A WITH RING ABOVE (U+00e5).
        Dim xyzARing As String = "xyz" & "å"
        
        ' Clear the screen and display an introduction.
        Console.Clear()
        
        ' Display the string to search for and the string to search.
        Console.WriteLine(msg1, capitalARing, xyzARing)
        
        ' Search using English-United States culture.
        ci = New CultureInfo("en-US")
        Console.WriteLine(msg2, ci.DisplayName, ci.Name)
        
        Console.WriteLine("Case sensitive:")
        result = xyzARing.EndsWith(capitalARing, False, ci)
        Console.WriteLine(msg3, result)
        
        Console.WriteLine("Case insensitive:")
        result = xyzARing.EndsWith(capitalARing, True, ci)
        Console.WriteLine(msg3, result)
        Console.WriteLine()
        
        ' Search using Swedish-Sweden culture.
        ci = New CultureInfo("sv-SE")
        Console.WriteLine(msg2, ci.DisplayName, ci.Name)
        
        Console.WriteLine("Case sensitive:")
        result = xyzARing.EndsWith(capitalARing, False, ci)
        Console.WriteLine(msg3, result)
        
        Console.WriteLine("Case insensitive:")
        result = xyzARing.EndsWith(capitalARing, True, ci)
        Console.WriteLine(msg3, result)
    
    End Sub
End Class

'
'Note: This code example was executed on a console whose user interface 
'culture is "en-US" (English-United States).
'
'This code example produces the following results:
'
'Search for the target string "Å" in the string "xyza°".
'
'Using the English (United States) - "en-US" culture:
'Case sensitive:
'  The string to search ends with the target string: False
'Case insensitive:
'  The string to search ends with the target string: True
'
'Using the Swedish (Sweden) - "sv-SE" culture:
'Case sensitive:
'  The string to search ends with the target string: False
'Case insensitive:
'  The string to search ends with the target string: False
'

注解

此方法将 value 参数与此字符串末尾与 value长度相同的子字符串进行比较,并返回一个值,该值指示它们是否相等。This method compares the value parameter to the substring at the end of this string that is the same length as value, and returns a value that indicates whether they are equal. 若要相等,value 必须是对此同一个实例的引用,或与此字符串的末尾匹配。To be equal, value must be a reference to this same instance or match the end of this string.

此方法使用指定的大小写和区域性执行 word (区分区域性)比较。This method performs a word (culture-sensitive) comparison using the specified casing and culture.

另请参阅

适用于