當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C# Char.IsSurrogatePair(String, Int32)用法及代碼示例


此方法用於指示字符串中指定位置的兩個相鄰Char對象是否形成代理對。

用法:

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

參數:


  • s:這是一個字符串。
  • index:它是要在s內評估的一對字符的起始位置。

返回值:如果s參數在位置index和index + 1處包含相鄰字符,並且位置index處的字符的數值範圍為U+D800 通過U+DBFF,以及該位置的字符的數值 index +1範圍從U+DC00通過U+DFFF否則返回

異常:

  • ArgumentNullException:如果s為null。
  • ArgumentOutOfRangeException:如果索引不在s內。

以下示例程序旨在說明Char.IsSurrogatePair(String,Int32)方法的用法:

範例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]

範例2:對於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

範例3:對於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

參考:



相關用法


注:本文由純淨天空篩選整理自RohitPrasad3大神的英文原創作品 C# | Char.IsSurrogatePair(String, Int32) Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。