This method is used to indicates whether two adjacent Char objects at a specified position in a string form a surrogate pair or not.
Syntax:
public static bool IsSurrogatePair (string s, int index);
Parameters:
s: It is a String.
index: It is the starting position of the pair of characters to evaluate within s.
Return Value: This method returns true if the s parameter includes adjacent characters at positions index and index + 1, and the numeric value of the character at position index ranges from U+D800
through U+DBFF
, and the numeric value of the character at position index + 1 ranges from U+DC00
through U+DFFF
otherwise it returns false.
Exceptions:
- ArgumentNullException: If the s is null.
- ArgumentOutOfRangeException: If the index is not a position within s.
Below programs illustrate the use of Char.IsSurrogatePair(String, Int32) Method:
Example 1:
using System;
class GFG {
public static void Main()
{
try {
check( "1234" , 3);
check( "Tsunami" , 3);
check( "psyc0lo" , 4);
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);
}
}
public static void check( string s, int i)
{
bool val = Char.IsSurrogatePair(s, i);
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);
}
}
|
Output:
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]
Example 2: For ArgumentNullException
using System;
class GFG {
public static void Main()
{
try {
check( "1234" , 3);
check( "Tsunami" , 3);
check( "psyc0lo" , 4);
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);
}
}
public static void check( string s, int i)
{
bool val = Char.IsSurrogatePair(s, i);
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);
}
}
|
Output:
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
Example 3: For ArgumentOutOfRangeException
using System;
class GFG {
public static void Main()
{
try {
check( "1234" , 3);
check( "Tsunami" , 3);
check( "psyc0lo" , 4);
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);
}
}
public static void check( string s, int i)
{
bool val = Char.IsSurrogatePair(s, i);
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);
}
}
|
Output:
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
Reference: