📜  C#| Char.IsControl(String,Int32)方法

📅  最后修改于: 2021-05-29 22:50:16             🧑  作者: Mango

使用此方法,以指示在指定字符串中指定位置的字符是否被分类为控制字符。

句法:

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

参数:

返回值:如果s中位于位置索引处的字符是控制字符,则此方法返回true ,否则返回false

例外情况:

  • ArgumentNullException:如果s为null。
  • ArgumentOutOfRangeException:如果索引小于或大于s中的最后一个位置。

注意:控制字符是格式化字符和其他非打印字符,例如ACK, BEL, CR, FF, LF, and VT

下面的程序说明了Char.IsControl(String,Int32)方法的用法

范例1:

// C# program to demonstrate the
// Char.IsControl(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);
            check("a" + Environment.NewLine + "b", 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 GetNumericValue() Method
        bool val = Char.IsControl(s, i);
  
        // checking
        if (val)
            Console.WriteLine("Control character \\U{0} "+
                                 "found in position {1}.", 
                 Convert.ToInt32(s[i]).ToString("X4"), i);
  
        else
            Console.WriteLine("String '{0}' does't contain control "+
                                      "character at index {1}", s, i);
    }
}
输出:
String '1234' does't contain control character at index 3
String 'Tsunami' does't contain control character at index 3
String 'psyc0lo' does't contain control character at index 4
Control character \U000A found in position 1.

示例2:对于ArgumentNullException

// C# program to demonstrate the
// Char.IsControl(String, Int32) 
// Method
using System;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        try {
  
            // calling check() Method
            check("1234", 3);
            check("psyc0lo", 4);
            check("a" + Environment.NewLine + "b", 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 GetNumericValue() Method
        bool val = Char.IsControl(s, i);
  
        // checking
        if (val)
            Console.WriteLine("Control character \\U{0} found"+
                                           " in position {1}.",
                       Convert.ToInt32(s[i]).ToString("X4"), i);
        else
            Console.WriteLine("String '{0}' does't contain "+
                     "control character at index {1}", s, i);
    }
}
输出:
String '1234' does't contain control character at index 3
String 'psyc0lo' does't contain control character at index 4
Control character \U000A found in position 1.

s is null
Exception Thrown: System.ArgumentNullException

示例3:对于ArgumentOutOfRangeException

// C# program to demonstrate the
// Char.IsControl(String, Int32) 
// Method
using System;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        try {
  
            // calling check() Method
            check("1234", 3);
            check("psyc0lo", 4);
            check("a" + Environment.NewLine + "b", 1);
  
            Console.WriteLine("");
            Console.WriteLine("index is less than zero");
  
            check("null", -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 GetNumericValue() Method
        bool val = Char.IsControl(s, i);
  
        // checking
        if (val)
            Console.WriteLine("Control character \\U{0} found "+
                                              "in position {1}.",
                        Convert.ToInt32(s[i]).ToString("X4"), i);
        else
            Console.WriteLine("String '{0}' does't contain control"+
                                   " character at index {1}", s, i);
    }
}
输出:
String '1234' does't contain control character at index 3
String 'psyc0lo' does't contain control character at index 4
Control character \U000A found in position 1.

index is less than zero
Exception Thrown: System.ArgumentOutOfRangeException

参考:

  • https://docs.microsoft.com/zh-cn/dotnet/api/system.char.iscontrol?view=netframework-4.7.2#System_Char_IsControl_System_String_System_Int32_