String.EndsWith Método

Definição

Determina se o fim desta instância de cadeia de caracteres corresponde a uma cadeia de caracteres especificada.

Sobrecargas

EndsWith(String, Boolean, CultureInfo)

Determina se o final dessa instância de cadeia de caracteres corresponde à cadeia de caracteres especificada quando comparada usando a cultura especificada.

EndsWith(String, StringComparison)

Determina se o fim dessa instância de cadeia de caracteres corresponde à cadeia de caracteres especificada quando comparado ao uso da opção de comparação especificada.

EndsWith(Char)

Determina se o final desta instância de cadeia de caracteres corresponde ao caractere especificado.

EndsWith(String)

Determina se o final desta instância de cadeia de caracteres corresponde à cadeia de caracteres especificada.

EndsWith(String, Boolean, CultureInfo)

Origem:
String.Comparison.cs
Origem:
String.Comparison.cs
Origem:
String.Comparison.cs

Determina se o final dessa instância de cadeia de caracteres corresponde à cadeia de caracteres especificada quando comparada usando a cultura especificada.

public bool EndsWith (string value, bool ignoreCase, System.Globalization.CultureInfo? culture);
public bool EndsWith (string value, bool ignoreCase, System.Globalization.CultureInfo culture);

Parâmetros

value
String

A cadeia de caracteres a ser comparada com a subcadeia de caracteres no final desta instância.

ignoreCase
Boolean

true para ignorar maiúsculas durante a comparação; do contrário, false.

culture
CultureInfo

As informações culturais que determinam como essa instância e value são comparadas. Se culture for null, a cultura atual será usada.

Retornos

true se o parâmetro value corresponder ao final dessa cadeia de caracteres; caso contrário, false.

Exceções

value é null.

Exemplos

O exemplo a seguir determina se uma cadeia de caracteres ocorre no final de outra cadeia de caracteres. O EndsWith método é chamado várias vezes usando diferenciação de maiúsculas e minúsculas, insensibilidade de maiúsculas e minúsculas e diferentes culturas que influenciam os resultados da pesquisa.

// 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";

        // 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);
    }
}

/*
This code example produces the following results (for en-us culture):

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

*/

Comentários

Esse método compara o value parâmetro com a subcadeia de caracteres no final dessa cadeia de caracteres que tem o mesmo comprimento valueque e retorna um valor que indica se eles são iguais. Para ser igual, value deve ser uma referência a essa mesma instância ou corresponder ao final dessa cadeia de caracteres.

Esse método executa uma comparação de palavras (sensíveis à cultura) usando o uso de maiúsculas e minúsculas e cultura especificados.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

EndsWith(String, StringComparison)

Origem:
String.Comparison.cs
Origem:
String.Comparison.cs
Origem:
String.Comparison.cs

Determina se o fim dessa instância de cadeia de caracteres corresponde à cadeia de caracteres especificada quando comparado ao uso da opção de comparação especificada.

public bool EndsWith (string value, StringComparison comparisonType);
[System.Runtime.InteropServices.ComVisible(false)]
public bool EndsWith (string value, StringComparison comparisonType);

Parâmetros

value
String

A cadeia de caracteres a ser comparada com a subcadeia de caracteres no final desta instância.

comparisonType
StringComparison

Um dos valores de enumeração que determina como essa cadeia de caracteres e value são comparados.

Retornos

true se o parâmetro value corresponder ao final dessa cadeia de caracteres; caso contrário, false.

Atributos

Exceções

value é null.

comparisonType não é um valor StringComparison.

Exemplos

O exemplo a seguir determina se uma cadeia de caracteres termina com uma subcadeia de caracteres específica. Os resultados são afetados pela escolha da cultura, se o caso é ignorado e se uma comparação ordinal é executada.

// 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.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".

*/

Comentários

O EndsWith método compara o value parâmetro com a subcadeia de caracteres no final dessa cadeia de caracteres e retorna um valor que indica se eles são iguais. Para ser igual, value deve ser uma referência a essa mesma cadeia de caracteres, deve ser a cadeia de caracteres vazia ("" ) ou deve corresponder ao final dessa cadeia de caracteres. O tipo de comparação executado pelo EndsWith método depende do valor do comparisonType parâmetro .

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

EndsWith(Char)

Origem:
String.Comparison.cs
Origem:
String.Comparison.cs
Origem:
String.Comparison.cs

Determina se o final desta instância de cadeia de caracteres corresponde ao caractere especificado.

public bool EndsWith (char value);

Parâmetros

value
Char

O caractere a ser comparado com o caractere no final desta instância.

Retornos

true se value corresponder ao final dessa instância; caso contrário, false.

Comentários

Este método executa uma comparação ordinal (diferencia maiúsculas de minúsculas e insensível à cultura).

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1

EndsWith(String)

Origem:
String.Comparison.cs
Origem:
String.Comparison.cs
Origem:
String.Comparison.cs

Determina se o final desta instância de cadeia de caracteres corresponde à cadeia de caracteres especificada.

public bool EndsWith (string value);

Parâmetros

value
String

A cadeia de caracteres a ser comparada com a subcadeia de caracteres no final desta instância.

Retornos

true se value corresponder ao final dessa instância; caso contrário, false.

Exceções

value é null.

Exemplos

O exemplo a seguir indica se cada cadeia de caracteres em uma matriz termina com um ponto (".").

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

O exemplo a seguir define um StripEndTags método que usa o EndsWith(String) método para remover marcas de fim HTML do final de uma linha. Observe que o StripEndTags método é chamado recursivamente para garantir que várias marcas de término HTML no final da linha sejam removidas.

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>

Comentários

Esse método se compara à subcadeia de caracteres value no final dessa instância que tem o mesmo comprimento valueque e retorna uma indicação se elas são iguais. Para ser igual, value deve ser uma referência a essa mesma instância ou corresponder ao final dessa instância.

Este método executa uma comparação de palavra (diferencia maiúsculas de minúsculas e sensível à cultura) usando a cultura atual.

Notas aos Chamadores

Conforme explicado em Práticas Recomendadas para Uso de Cadeias de Caracteres, recomendamos que você evite chamar métodos de comparação de cadeia de caracteres que substituem valores padrão e, em vez disso, chamem métodos que exigem que os parâmetros sejam especificados explicitamente. Para determinar se uma cadeia de caracteres termina com uma subcadeia de caracteres específica usando as regras de comparação de cadeia de caracteres da cultura atual, sinalize sua intenção explicitamente chamando a sobrecarga do EndsWith(String, StringComparison) método com um valor de CurrentCulture para seu comparisonType parâmetro. Se você não precisar de comparação com reconhecimento linguístico, considere usar Ordinal.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0