使用此方法,以指示在指定字符串中指定位置的字符是否被分类为控制字符。
句法:
public static bool IsControl (string s, int index);
参数:
s: It is the String.
index: It is the character position in s.
返回值:如果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_