C# String EndsWith() Method
In C#, the EndsWith() is a string method used to check whether the ending of the current string instance matches a specified string. If it matches, it returns true; otherwise, it returns false. Using the foreach loop, we can check multiple strings. This method supports overloading by passing different types and numbers of arguments.
Example 1: Basic Usage of EndsWith() Method
// C# program to demonstrate EndsWith() method
using System.Globalization;
using System;
class Geeks
{
public static void Main(string[] args)
{
// Declare and initialize a string
string s = "GeeksforGeeks";
// Check if s ends with "Geeks"
// and print the result
Console.WriteLine(s.EndsWith("Geeks").ToString());
}
}
Output
True
Explanation: This example checks if the string "GeeksforGeeks" ends with "Geeks" and prints true.
Syntax of String EndsWith() Method
public bool EndsWith(string value);
public bool EndsWith(string value, StringComparison comparisonType);
public bool EndsWith(string value, bool ignoreCase, CultureInfo culture);
Parameters:
- value: The string to compare with the end of the current string.
- comparisonType: A StringComparison value that determines how strings are compared.
- ignoreCase: A bool value indicating whether to ignore case sensitivity.
- culture: A CultureInfo object specifying culture-specific comparison rules.
Return Type:
- It returns true if the given string matches the end of the current string; otherwise, returns false.
Exceptions:
- ArgumentNullException: Thrown if value is null.
- ArgumentException: Thrown if comparisonType is not a valid StringComparison value.
Example 2: Using String.EndsWith(String)
// C# program to check EndsWith()
// with different strings
using System;
public class Geeks
{
static public void Main()
{
// Declare and initialize two strings
string s1 = "Hello Geek";
string s2 = "GeeksforGeeks";
// Check if strings end with
// specific substrings
bool ans1 = s1.EndsWith("Geek");
bool ans2 = s2.EndsWith("Hello");
Console.WriteLine(ans1.ToString());
Console.WriteLine(ans2.ToString());
}
}
Output
True False
Explanation: The example checks whether s1 ends with "Geek" and s2 ends with "Hello", printing true and false accordingly.
Example 3: Removing Closing HTML Tags Using EndsWith()
// C# program to remove closing
// HTML tags using EndsWith()
using System;
public class Geeks
{
static public void Main()
{
// Array of HTML-like strings
string[] s1 = {
"<p> GeekforGeeks Computer Science Portal </p>",
"<h1> GeekforGeeks Sudo Placement </h1>",
"<h2> GeekforGeeks Placement Preparation </h2>",
"<h3> GeekforGeeks Contribute </h3>",
};
// Process and remove closing tags
foreach (var n in s1)
Console.WriteLine(HtmlEndTags(n));
}
private static string HtmlEndTags(string s2)
{
// Boolean flag to track if
// an ending tag is found
bool a = false;
// Check if the string ends with '>'
if (s2.Trim().EndsWith('>'))
{
// Find the last occurrence of "</"
// indicating a closing tag
int end = s2.LastIndexOf("</");
// If found, remove the closing tag
if (end >= 0)
{
a = true;
s2 = s2.Substring(0, end);
}
}
// Recursively remove tags if found
if (a)
s2 = HtmlEndTags(s2);
return s2;
}
}
Output
<p> GeekforGeeks Computer Science Portal <h1> GeekforGeeks Sudo Placement <h2> GeekforGeeks Placement Preparation <h3> GeekforGeeks Contribute
Explanation: This example iterates through an array of HTML like strings and removes their closing tags using EndsWith().
Example 4: Using Culture-Sensitive Comparison
// C# program to demonstrate
// EndsWith() with CultureInfo
using System.Threading;
using System.Globalization;
using System;
class Geeks
{
public static void Main(string[] args)
{
// Define a test string
string s = "Geeksforgeeks";
// Case-sensitive comparison with different inputs
bool a = s.EndsWith("Geeks", false, CultureInfo.InvariantCulture);
bool b = s.EndsWith("geeks", false, CultureInfo.InvariantCulture);
bool c = s.EndsWith("GEEKS", false, CultureInfo.InvariantCulture);
bool d = s.EndsWith(" ", false, CultureInfo.InvariantCulture);
bool e = s.EndsWith("Hello", false, CultureInfo.InvariantCulture);
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
Console.WriteLine(d);
Console.WriteLine(e);
}
}
Output
False True False False False
Explanation: This example demonstrates how EndsWith() behaves with case sensitivity and CultureInfo settings.
Example 5: Using Different StringComparison Options
// C# program to demonstrate
// EndsWith() with StringComparison
using System;
class Geeks
{
public static void Main(string[] args)
{
// Declare multiple strings
string s1 = "GeeksforGeeks";
string s2 = "Sudo Placement";
string s3 = "Geeks Article";
// Check if strings end with specific
// substrings using StringComparison
bool a = s1.EndsWith("Geek", StringComparison.CurrentCulture);
bool b = s1.EndsWith("geek", StringComparison.CurrentCulture);
bool c = s2.EndsWith("Placement", StringComparison.CurrentCulture);
bool d = s2.EndsWith("Sudo", StringComparison.CurrentCulture);
bool e = s3.EndsWith("Article", StringComparison.CurrentCulture);
bool f = s3.EndsWith("Geeks", StringComparison.CurrentCulture);
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
Console.WriteLine(d);
Console.WriteLine(e);
Console.WriteLine(f);
}
}
Output
False False True False True False
Explanation: This example demonstrates different StringComparison options to determine string endings based on culture and case sensitivity.
Important Points:
- EndsWith() checks whether a string ends with a given substring.
- It supports case-sensitive and case-insensitive comparisons.
- It can use CultureInfo for cultural-specific checks.
- It provides multiple overloads to customize comparisons.
- Using EndsWith() properly allows efficient string validation for filtering and text processing.