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+DBFF
y el valor numérico del carácter en la posición índice + 1 va desde U+DC00
a través de U+DFFF
lo 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); } }
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); } }
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); } }
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