📜  C#| String.IsNormalized方法

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

IsNormalized()方法用于检查给定的字符串是否采用特定的Unicode规范化形式。如果给定的字符串采用特定的规范化形式,则此方法返回true。否则,返回false。
此方法的重载列表中有两种方法,如下所示:

  1. IsNormalized()
  2. IsNormalized(NormalizationForm)

重要事项:

  • 一些Unicode字符具有多个等效的二进制表示形式,这些表示形式会使搜索,排序,匹配和其他操作复杂化。
  • Unicode标准定义了一个称为标准化的过程,当给定字符的任何等效二进制表示形式时,该过程将返回一个二进制表示形式。可以使用遵守不同规则的几种算法(称为标准化形式)来执行标准化。
  • .NET当前支持标准化表格C,D,KC和KD。

IsNormalized()

此方法用于检查给定的字符串是否采用Unicode规范化形式C。如果字符串采用Unicode规范化格式C,则此方法返回true,否则返回false。

句法:

public bool IsNormalized ();

返回值:该方法的返回类型为System.Boolean 。当给定的字符串不是规范化形式C时,此方法返回true;如果给定的字符串不是规范化形式即C,则该方法返回false。

异常:如果当前实例包含无效的Unicode字符,则此方法将提供ArgumentException

例子:

// C# program to illustrate the
// IsNormalized() method
using System;
using System.Text;
  
class GFG {
      
    // Main method
    static public void Main()
    {
  
        // string
        string str1 = "Hello, Geeks!";
  
        bool value;
  
        // check the given string is
        // in normalized form or not
        // using IsNormalized() method
        value = str1.IsNormalized();
  
        // Display the data
        Console.WriteLine("String is : {0}", str1);
        Console.WriteLine("Is str1 string is in normalized form?: {0}", 
                                                                value);
    }
}
输出:
String is : Hello, Geeks!
Is str1 string is in normalized form?: True

注意: IsNormalized方法返回false,因为它将遇到字符串的第一个非规范化字符。因此,如果字符串包含非标准化字符后跟无效的Unicode字符,尽管IsNormalized返回false ,但是Normalize方法将引发ArgumentException

IsNormalized(NormalizationForm)

此方法用于检查给定的字符串是否采用指定的Unicode规范化形式。如果给定的字符串采用指定的Unicode规范化形式,则此方法将返回true,否则返回false。

句法:

public bool IsNormalized (NormalizationForm nform);

在这里, nform是Unicode规范化形式。

返回值:该方法的返回类型为System.Boolean 。如果此字符串采用nform参数指定的规范化形式,则此方法返回true 。否则,返回false

异常:如果当前实例包含无效的Unicode字符,则此方法将提供ArgumentException

例子:

// C# program to illustrate the 
// IsNormalized(NormalizationForm) method
using System;
using System.Text;
  
class Sample {
      
    // Main method
    public static void Main()
    {
          
        // create and initialize string
        string str1 = "GeeksforGeeks!";
  
        // Display and check the given string 
        // is in C, D, KC, and KD normalized form
        // Using IsNormalized(NormalizationForm) method
        Console.WriteLine("Is string str1 is normalized to form C - {0}",
                             str1.IsNormalized(NormalizationForm.FormC));
                               
        Console.WriteLine("Is string str1 is normalized to form D - {0}",
                             str1.IsNormalized(NormalizationForm.FormD));
                               
        Console.WriteLine("Is string str1 is normalized to form KC - {0}",
                             str1.IsNormalized(NormalizationForm.FormKC));
                               
        Console.WriteLine("Is string str1 is normalized to form KD - {0}",
                             str1.IsNormalized(NormalizationForm.FormKD));
    }
}
输出:
Is string str1 is normalized to form C - True
Is string str1 is normalized to form D - True
Is string str1 is normalized to form KC - True
Is string str1 is normalized to form KD - True

参考: https : //docs.microsoft.com/zh-cn/dotnet/api/system。字符串.isnormalized?view = netframework-4.7.2