C# | Método Char.IsSurrogatePair(String, Int32)

Este método se usa para indicar si dos objetos Char adyacentes en una posición específica en una string forman un par sustituto o no.

Sintaxis:

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

Parámetros:

s : es una string.

index : Es la posición inicial del par de caracteres a evaluar dentro de s .

Valor devuelto: este método devuelve verdadero si el parámetro s incluye caracteres adyacentes en las posiciones índice e índice + 1 , y el valor numérico del carácter en la posición índice va desde U+D800 hasta U+DBFFy el valor numérico del carácter en la posición índice + 1 va desde U+DC00a través de U+DFFFlo contrario, devuelve falso .

Excepciones:

  • ArgumentNullException: si la s es nula.
  • ArgumentOutOfRangeException: si el índice no es una posición dentro de s .

Los siguientes programas ilustran el uso del método Char.IsSurrogatePair(String, Int32):

Ejemplo 1:

// C# program to demonstrate the
// Char.IsSurrogatePair(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, 1);
        }
        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
        // using IsSurrogatePair() Method
        bool val = Char.IsSurrogatePair(s, i);
  
        // checking
        if (val)
            Console.WriteLine("String '{0}' contains "
              + "Surrogate pairs at s[{1}] and s[{2}]",
                                          s, i, i + 1);
                                
        else
            Console.WriteLine("String '{0}' does't contain any "
                       + "Surrogate pairs at s[{1}] and s[{2}]",
                                                    s, i, i + 1);
                                
    }
}
Producción:

String '1234' does't contain any Surrogate pairs at s[3] and s[4]
String 'Tsunami' does't contain any Surrogate pairs at s[3] and s[4]
String 'psyc0lo' does't contain any Surrogate pairs at s[4] and s[5]
String 'að??z' contains Surrogate pairs at s[1] and s[2]

Ejemplo 2: para ArgumentNullException

// C# program to demonstrate the
// Char.IsSurrogatePair(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, 1);
  
            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
        // using IsSurrogatePair() Method
        bool val = Char.IsSurrogatePair(s, i);
  
        // checking
        if (val)
            Console.WriteLine("String '{0}' contains "
              + "Surrogate pairs at s[{1}] and s[{2}]",
                                          s, i, i + 1);
        else
            Console.WriteLine("String '{0}' does't contain any "
                       + "Surrogate pairs at s[{1}] and s[{2}]",
                                                   s, i, i + 1);
    }
}
Producción:

String '1234' does't contain any Surrogate pairs at s[3] and s[4]
String 'Tsunami' does't contain any Surrogate pairs at s[3] and s[4]
String 'psyc0lo' does't contain any Surrogate pairs at s[4] and s[5]
String 'að??z' contains Surrogate pairs at s[1] and s[2]

s is null
Exception Thrown: System.ArgumentNullException

Ejemplo 3: para ArgumentOutOfRangeException

// C# program to demonstrate the
// Char.IsSurrogatePair(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, 1);
  
            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
        // using IsSurrogatePair() Method
        bool val = Char.IsSurrogatePair(s, i);
  
        // checking
        if (val)
            Console.WriteLine("String '{0}' contains "
              + "Surrogate pairs at s[{1}] and s[{2}]",
                                          s, i, i + 1);
        else
            Console.WriteLine("String '{0}' does not contain any "
                        + "Surrogate pairs at s[{1}] and s[{2}]",
                                                    s, i, i + 1);
    }
}
Producción:

String '1234' does not contain any Surrogate pairs at s[3] and s[4]
String 'Tsunami' does not contain any Surrogate pairs at s[3] and s[4]
String 'psyc0lo' does not contain any Surrogate pairs at s[4] and s[5]
String 'að??z' contains Surrogate pairs at s[1] and s[2]

index is less than zero
Exception Thrown: System.ArgumentOutOfRangeException

Referencia:

Publicación traducida automáticamente

Artículo escrito por RohitPrasad3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *