Char.IsNumber Метод

Определение

Показывает, относится ли символ Юникода к категории цифр.

Перегрузки

IsNumber(String, Int32)

Показывает, относится ли указанный символ в указанной позиции в указанной строке к категории цифр.

IsNumber(Char)

Показывает, относится ли указанный символ Юникода к категории цифр.

IsNumber(String, Int32)

Показывает, относится ли указанный символ в указанной позиции в указанной строке к категории цифр.

public:
 static bool IsNumber(System::String ^ s, int index);
public static bool IsNumber (string s, int index);
static member IsNumber : string * int -> bool
Public Shared Function IsNumber (s As String, index As Integer) As Boolean

Параметры

s
String

Строка.

index
Int32

Позиция символа, который необходимо вычислить в s.

Возвращаемое значение

Boolean

Значение true, если символ в позиции index в s является цифрой; в противном случае — значение false.

Исключения

s имеет значение null.

Параметр index имеет значение меньше нуля или больше последней позиции в s.

Примеры

В следующем примере демонстрируется IsNumber .

using namespace System;
int main()
{
   String^ str =  "non-numeric";
   Console::WriteLine( Char::IsNumber( '8' ) ); // Output: "True"
   Console::WriteLine( Char::IsNumber( str, 3 ) ); // Output: "False"
}
using System;

public class IsNumberSample {
    public static void Main() {
        string str = "non-numeric";

        Console.WriteLine(Char.IsNumber('8'));		// Output: "True"
        Console.WriteLine(Char.IsNumber(str, 3));	// Output: "False"
    }
}
open System

let str = "non-numeric"

printfn $"{Char.IsNumber '8'}"      // Output: "True"
printfn $"{Char.IsNumber(str, 3)}"  // Output: "False"
Module IsNumberSample
    Sub Main()
        Dim str As String
        str = "non-numeric"

        Console.WriteLine(Char.IsNumber("8"c))      ' Output: "True"
        Console.WriteLine(Char.IsNumber(str, 3))    ' Output: "False"
    End Sub
End Module

Комментарии

Этот метод определяет, Char имеет ли Любая числовая Категория Юникода. Помимо цифр, числами могут быть символы, дроби, индексы, надстрочные знаки, римские цифры, числительы валюты и енЦирклед числа. Этот метод отличается от IsDigit метода, который определяет, Char является ли десятичная цифрой основанием.

Позиции символов в строке индексируются начиная с нуля.

Важно!

IsNumber(String, Int32)Метод не предназначен для определения того, состоит ли строка из числовых символов (например, путем вызова метода для каждого символа в строке). Чтобы определить, состоит ли строка из числовых символов, вызовите одну из перегрузок TryParse метода (например, Int32.TryParse или Double.TryParse типа с плавающей запятой или целого числа).

Допустимые числа — это элементы UnicodeCategory.DecimalDigitNumber UnicodeCategory.LetterNumber категории, или UnicodeCategory.OtherNumber .

Если Char объект в позиции index является первым символом допустимой суррогатной пары, IsNumber(String, Int32) метод определяет, образует ли суррогатная пара цифровую цифру. Например, система нумерации Эгейский Университет состоит из кодовых точек U + 10107 через U + 10133. В следующем примере метод используется ConvertFromUtf32 для создания экземпляра строки, представляющей ЭГЕЙСКИЙ университет номер 1. Как видно из выходных данных в примере, IsNumber(String, Int32) метод возвращает, true если он передается старшим СУРРОГАТОМ ЭГЕЙСКИЙ университет числа 1. Однако если он передается младшим символом-заместителем, он считает только категорию младших суррогатов и возвращает false .

int utf32 = 0x10107;      // AEGEAN NUMBER ONE
string surrogate = Char.ConvertFromUtf32(utf32);
for (int ctr = 0; ctr < surrogate.Length; ctr++)
   Console.WriteLine("U+{0:X4} at position {1}: {2}",
                     Convert.ToUInt16(surrogate[ctr]), ctr,
                     Char.IsNumber(surrogate, ctr));
// The example displays the following output:
//       U+D800 at position 0: True
//       U+DD07 at position 1: False
let utf32 = 0x10107      // AEGEAN NUMBER ONE
let surrogate = Char.ConvertFromUtf32 utf32
for i = 0 to surrogate.Length - 1 do
    printfn $"U+{Convert.ToUInt16 surrogate[i]:X4} at position {i}: {Char.IsNumber(surrogate, i)}"
                    
// The example displays the following output:
//       U+D800 at position 0: True
//       U+DD07 at position 1: False
Dim utf32 As Integer = &h10107      ' AEGEAN NUMBER ONE
Dim surrogate As String = Char.ConvertFromUtf32(utf32)
For ctr As Integer = 0 To surrogate.Length - 1
   Console.WriteLine("U+{0:X4} at position {1}: {2}", 
                     Convert.ToUInt16(surrogate(ctr)), ctr,  
                     Char.IsNumber(surrogate, ctr))
Next
' The example displays the following output:
'       U+D800 at position 0: True
'       U+DD07 at position 1: False

См. также раздел

Применяется к

IsNumber(Char)

Показывает, относится ли указанный символ Юникода к категории цифр.

public:
 static bool IsNumber(char c);
public static bool IsNumber (char c);
static member IsNumber : char -> bool
Public Shared Function IsNumber (c As Char) As Boolean

Параметры

c
Char

Знак Юникода, который необходимо вычислить.

Возвращаемое значение

Boolean

Значение true, если c является цифрой; в противном случае — значение false.

Примеры

В следующем примере демонстрируется IsNumber .

using namespace System;
int main()
{
   String^ str =  "non-numeric";
   Console::WriteLine( Char::IsNumber( '8' ) ); // Output: "True"
   Console::WriteLine( Char::IsNumber( str, 3 ) ); // Output: "False"
}
using System;

public class IsNumberSample {
    public static void Main() {
        string str = "non-numeric";

        Console.WriteLine(Char.IsNumber('8'));		// Output: "True"
        Console.WriteLine(Char.IsNumber(str, 3));	// Output: "False"
    }
}
open System

let str = "non-numeric"

printfn $"{Char.IsNumber '8'}"      // Output: "True"
printfn $"{Char.IsNumber(str, 3)}"  // Output: "False"
Module IsNumberSample
    Sub Main()
        Dim str As String
        str = "non-numeric"

        Console.WriteLine(Char.IsNumber("8"c))      ' Output: "True"
        Console.WriteLine(Char.IsNumber(str, 3))    ' Output: "False"
    End Sub
End Module

Комментарии

Этот метод определяет, Char имеет ли Любая числовая Категория Юникода. Помимо цифр, числами могут быть символы, дроби, индексы, надстрочные знаки, римские цифры, числительы валюты и енЦирклед числа. Этот метод отличается от IsDigit метода, который определяет, Char является ли десятичная цифрой основанием.

Важно!

IsNumber(Char)Метод не предназначен для определения того, состоит ли строка из числовых символов (например, путем вызова метода для каждого символа в строке). Чтобы определить, состоит ли строка из числовых символов, вызовите одну из перегрузок TryParse метода (например, Int32.TryParse или Double.TryParse типа с плавающей запятой или целого числа).

Допустимые числа — это элементы UnicodeCategory.DecimalDigitNumber UnicodeCategory.LetterNumber категории, или UnicodeCategory.OtherNumber .

IsNumber(Char)Метод предполагает, что c соответствует одному лингвистическому символу и проверяет, представляет ли этот символ число. Однако некоторые числа в стандарте Юникода представлены двумя Char объектами, которые формируют суррогатную пару. Например, система нумерации Эгейский Университет состоит из кодовых точек U + 10107 через U + 10133. В следующем примере метод используется ConvertFromUtf32 для создания экземпляра строки, представляющей ЭГЕЙСКИЙ университет номер 1. Как видно из выходных данных в примере, IsNumber(Char) метод возвращает значение, false Если передается старший или младший символ-заместитель этого символа.

int utf32 = 0x10107;      // AEGEAN NUMBER ONE
string surrogate = Char.ConvertFromUtf32(utf32);
foreach (var ch in surrogate)
   Console.WriteLine("U+{0:X4}: {1}", Convert.ToUInt16(ch),
                                    Char.IsNumber(ch));

// The example displays the following output:
//       U+D800: False
//       U+DD07: False
let utf32 = 0x10107      // AEGEAN NUMBER ONE
let surrogate = Char.ConvertFromUtf32 utf32
for ch in surrogate do
    printfn $"U+{Convert.ToUInt16 ch:X4}: {Char.IsNumber ch}"

// The example displays the following output:
//       U+D800: False
//       U+DD07: False
Dim utf32 As Integer = &h10107      ' AEGEAN NUMBER ONE
Dim surrogate As String = Char.ConvertFromUtf32(utf32)
For Each ch In surrogate
   Console.WriteLine("U+{0:X4}: {1}", Convert.ToUInt16(ch), 
                                    Char.IsNumber(ch))
Next
' The example displays the following output:
'       U+D800: False
'       U+DD07: False

См. также раздел

Применяется к