Skip to content
Related Articles

Related Articles

C# | Char.IsSurrogate(String, Int32) Method
  • Last Updated : 01 Feb, 2019

This method is used to indicates whether the character at the specified position in a specified string has a surrogate code unit or not.

Syntax:

public static bool IsSurrogate (string s, int index);

Parameters:

s: It is a String.

index: It is the character position to evaluate in s.

Return Value: This method returns true if the character at position index in s is either a high surrogate or a low surrogate otherwise, it returns false.

Exceptions:



  • ArgumentNullException: If the s is null.
  • ArgumentOutOfRangeException: If the index is less than zero or greater than the last position inn s.

Below programs illustrate the use of Char.IsSurrogate(String, Int32) Method:

Example 1:




// C# program to demonstrate
// Char.IsSurrogate(String,
// Int32) Method
using System;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        try {
  
            // calling check() Method
            check("1234", 3);
            check("Tsunami", 3);
            check("psyc0lo", 4);
  
            // declaring and initializing string s1
            string s1 = new String(new char[] {'a',
                        '\uD800', '\uDC00', 'z' });
            check(s1, 2);
        }
        catch (ArgumentNullException e) {
  
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
        catch (ArgumentOutOfRangeException e) {
  
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
  
    // Defining check() method
    public static void check(string s, int i)
    {
        // checking condition
        bool val = Char.IsSurrogate(s, i);
  
        // checking
        if (val)
            Console.WriteLine("String '{0}' contains "
               + "Surrogate value at index {1} ",s, i);
                                
        else
            Console.WriteLine("String '{0}' does't contain any"
                        + "Surrogate value at index {1}",s, i);
                                
    }
}
Output:
String '1234' does't contain anySurrogate value at index 3
String 'Tsunami' does't contain anySurrogate value at index 3
String 'psyc0lo' does't contain anySurrogate value at index 4
String 'að??z' contains Surrogate value at index 2

Example 2: For ArgumentNullException




// C# program to demonstrate
// Char.IsSurrogate(String,
// Int32) Method
using System;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        try {
  
            // calling check() Method
            check("1234", 3);
            check("Tsunami", 3);
            check("psyc0lo", 4);
  
            // declaring and initializing string s1
            string s1 = new String(new char[] { 'a',
                         '\uD800', '\uDC00', 'z' });
  
            check(s1, 2);
  
            Console.WriteLine("");
            Console.WriteLine("s is null");
            check(null, 4);
        }
        catch (ArgumentNullException e) {
  
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
        catch (ArgumentOutOfRangeException e) {
  
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
  
    // Defining check() method
    public static void check(string s, int i)
    {
  
        // checking condition
        bool val = Char.IsSurrogate(s, i);
  
        // checking
        if (val)
            Console.WriteLine("String '{0}' contains "
               + "Surrogate value at index {1} ",s, i);
                                
        else
            Console.WriteLine("String '{0}' does't contain any"
                       + "Surrogate value at index {1}",  s, i);
                              
    }
}
Output:
String '1234' does't contain anySurrogate value at index 3
String 'Tsunami' does't contain anySurrogate value at index 3
String 'psyc0lo' does't contain anySurrogate value at index 4
String 'að??z' contains Surrogate value at index 2 

s is null
Exception Thrown: System.ArgumentNullException

Example 3: For ArgumentOutOfRangeException




// C# program to demonstrate
// Char.IsSurrogate(String,
// Int32) Method
using System;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        try {
  
            // calling check() Method
            check("1234", 3);
            check("Tsunami", 3);
            check("psyc0lo", 4);
  
            // declaring and initializing string s1
            string s1 = new String(new char[] {'a'
                        '\uD800', '\uDC00', 'z' });
            check(s1, 2);
  
            Console.WriteLine("");
            Console.WriteLine("index is less than zero");
            check("null", -4);
        }
        catch (ArgumentNullException e) {
  
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
        catch (ArgumentOutOfRangeException e) {
  
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
  
    // Defining check() method
    public static void check(string s, int i)
    {
  
        // checking condition
        bool val = Char.IsSurrogate(s, i);
  
        // checking
        if (val)
            Console.WriteLine("String '{0}' contains "
              + "Surrogate value at index {1} ",  s, i);
                               
        else
            Console.WriteLine("String '{0}' does't contain any"
                       + "Surrogate value at index {1}", s, i);
                                
    }
}
Output:
String '1234' does't contain anySurrogate value at index 3
String 'Tsunami' does't contain anySurrogate value at index 3
String 'psyc0lo' does't contain anySurrogate value at index 4
String 'að??z' contains Surrogate value at index 2 

index is less than zero
Exception Thrown: System.ArgumentOutOfRangeException

Reference:

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :