Char.GetNumericValue メソッド

定義

指定された Unicode 文字の数字を倍精度浮動小数点数に変換します。

オーバーロード

GetNumericValue(String, Int32)

指定した文字列の指定位置にある Unicode の数字を倍精度浮動小数点数に変換します。

GetNumericValue(Char)

指定された Unicode の数字を倍精度浮動小数点数に変換します。

GetNumericValue(String, Int32)

指定した文字列の指定位置にある Unicode の数字を倍精度浮動小数点数に変換します。

public:
 static double GetNumericValue(System::String ^ s, int index);
public static double GetNumericValue (string s, int index);
static member GetNumericValue : string * int -> double
Public Shared Function GetNumericValue (s As String, index As Integer) As Double

パラメーター

s
String

String

index
Int32

s 内の文字位置。

戻り値

Double

この文字が数字の場合は、indexs の位置のこの文字の数値。それ以外の場合は -1。

例外

snullです。

index が 0 未満の値か、s の最後の位置より大きい値です。

次のコード例では、 を示します GetNumericValue

using namespace System;
int main()
{
   String^ str =  "input: 1";
   Console::WriteLine( Char::GetNumericValue( '8' ) ); // Output: "8"
   Console::WriteLine( Char::GetNumericValue( str, 7 ) ); // Output: "1"
}
using System;

public class GetNumericValueSample {
    public static void Main() {
        string str = "input: 1";

        Console.WriteLine(Char.GetNumericValue('8'));		// Output: "8"
        Console.WriteLine(Char.GetNumericValue(str, 7));	// Output: "1"
    }
}
open System

let str = "input: 1"

printfn $"{Char.GetNumericValue '8'}"       // Output: "8"
printfn $"{Char.GetNumericValue(str, 7)}"   // Output: "1"
Module GetNumericValueSample
    Sub Main()
        Dim str As String
        str = "input: 1"

        Console.WriteLine(Char.GetNumericValue("8"c))       ' Output: "8"
        Console.WriteLine(Char.GetNumericValue(str, 7))     ' Output: "1"
    End Sub
End Module

注釈

パラメーター s は、数値の文字列形式である必要があります。 たとえば、 内の位置の文字が index s "5" の場合、戻り値は 5 になります。 ただし、 内の位置の文字が "z" の場合、戻り値 index s は -1 になります。

文字列内の文字位置は、0 から始まるインデックスが作成されます。

文字は、、、または のいずれかのカテゴリのメンバーである場合にのみ、関連付けられた UnicodeCategory DecimalDigitNumber 数値 LetterNumber を持っています OtherNumber

位置のオブジェクトが有効なサロゲート ペアの最初の文字である場合、 メソッドは、サロゲート ペアが数値を形成 Char index GetNumericValue(String, Int32) するかどうかを決定します。 たとえば、大国番号システムは、コード ポイント U+10107 から U+10133 で構成されます。 次の例では、 ConvertFromUtf32 メソッドを使用して、各大名番号を表す文字列をインスタンス化します。 この例の出力に示すように、 メソッドは、正しい数値を返します。渡された数値は、大サロゲートとして GetNumericValue(String, Int32) 1 つの大多数の数値が渡された場合です。 ただし、このサロゲートが低いサロゲートを渡された場合は、分離して低いサロゲートのみを考慮し、-1 を返します。

// Define a UTF32 value for each character in the
// Aegean numbering system.
for (int utf32 = 0x10107; utf32 <= 0x10133; utf32++) {
   string surrogate = Char.ConvertFromUtf32(utf32);
   for (int ctr = 0; ctr < surrogate.Length; ctr++)
      Console.Write("U+{0:X4} at position {1}: {2}     ",
                        Convert.ToUInt16(surrogate[ctr]), ctr,
                        Char.GetNumericValue(surrogate, ctr));

   Console.WriteLine();
}
// The example displays the following output:
//       U+D800 at position 0: 1     U+DD07 at position 1: -1
//       U+D800 at position 0: 2     U+DD08 at position 1: -1
//       U+D800 at position 0: 3     U+DD09 at position 1: -1
//       U+D800 at position 0: 4     U+DD0A at position 1: -1
//       U+D800 at position 0: 5     U+DD0B at position 1: -1
//       U+D800 at position 0: 6     U+DD0C at position 1: -1
//       U+D800 at position 0: 7     U+DD0D at position 1: -1
//       U+D800 at position 0: 8     U+DD0E at position 1: -1
//       U+D800 at position 0: 9     U+DD0F at position 1: -1
//       U+D800 at position 0: 10     U+DD10 at position 1: -1
//       U+D800 at position 0: 20     U+DD11 at position 1: -1
//       U+D800 at position 0: 30     U+DD12 at position 1: -1
//       U+D800 at position 0: 40     U+DD13 at position 1: -1
//       U+D800 at position 0: 50     U+DD14 at position 1: -1
//       U+D800 at position 0: 60     U+DD15 at position 1: -1
//       U+D800 at position 0: 70     U+DD16 at position 1: -1
//       U+D800 at position 0: 80     U+DD17 at position 1: -1
//       U+D800 at position 0: 90     U+DD18 at position 1: -1
//       U+D800 at position 0: 100     U+DD19 at position 1: -1
//       U+D800 at position 0: 200     U+DD1A at position 1: -1
//       U+D800 at position 0: 300     U+DD1B at position 1: -1
//       U+D800 at position 0: 400     U+DD1C at position 1: -1
//       U+D800 at position 0: 500     U+DD1D at position 1: -1
//       U+D800 at position 0: 600     U+DD1E at position 1: -1
//       U+D800 at position 0: 700     U+DD1F at position 1: -1
//       U+D800 at position 0: 800     U+DD20 at position 1: -1
//       U+D800 at position 0: 900     U+DD21 at position 1: -1
//       U+D800 at position 0: 1000     U+DD22 at position 1: -1
//       U+D800 at position 0: 2000     U+DD23 at position 1: -1
//       U+D800 at position 0: 3000     U+DD24 at position 1: -1
//       U+D800 at position 0: 4000     U+DD25 at position 1: -1
//       U+D800 at position 0: 5000     U+DD26 at position 1: -1
//       U+D800 at position 0: 6000     U+DD27 at position 1: -1
//       U+D800 at position 0: 7000     U+DD28 at position 1: -1
//       U+D800 at position 0: 8000     U+DD29 at position 1: -1
//       U+D800 at position 0: 9000     U+DD2A at position 1: -1
//       U+D800 at position 0: 10000     U+DD2B at position 1: -1
//       U+D800 at position 0: 20000     U+DD2C at position 1: -1
//       U+D800 at position 0: 30000     U+DD2D at position 1: -1
//       U+D800 at position 0: 40000     U+DD2E at position 1: -1
//       U+D800 at position 0: 50000     U+DD2F at position 1: -1
//       U+D800 at position 0: 60000     U+DD30 at position 1: -1
//       U+D800 at position 0: 70000     U+DD31 at position 1: -1
//       U+D800 at position 0: 80000     U+DD32 at position 1: -1
//       U+D800 at position 0: 90000     U+DD33 at position 1: -1
// Define a UTF32 value for each character in the
// Aegean numbering system.
for utf32 in 0x10107..0x10133 do
    let surrogate = Char.ConvertFromUtf32 utf32
    for i = 0 to surrogate.Length - 1 do
        printf $"U+{Convert.ToUInt16 surrogate[i]:X4} at position {i}: {Char.GetNumericValue(surrogate, i)}     "
    printfn ""

// The example displays the following output:
//       U+D800 at position 0: 1     U+DD07 at position 1: -1
//       U+D800 at position 0: 2     U+DD08 at position 1: -1
//       U+D800 at position 0: 3     U+DD09 at position 1: -1
//       U+D800 at position 0: 4     U+DD0A at position 1: -1
//       U+D800 at position 0: 5     U+DD0B at position 1: -1
//       U+D800 at position 0: 6     U+DD0C at position 1: -1
//       U+D800 at position 0: 7     U+DD0D at position 1: -1
//       U+D800 at position 0: 8     U+DD0E at position 1: -1
//       U+D800 at position 0: 9     U+DD0F at position 1: -1
//       U+D800 at position 0: 10     U+DD10 at position 1: -1
//       U+D800 at position 0: 20     U+DD11 at position 1: -1
//       U+D800 at position 0: 30     U+DD12 at position 1: -1
//       U+D800 at position 0: 40     U+DD13 at position 1: -1
//       U+D800 at position 0: 50     U+DD14 at position 1: -1
//       U+D800 at position 0: 60     U+DD15 at position 1: -1
//       U+D800 at position 0: 70     U+DD16 at position 1: -1
//       U+D800 at position 0: 80     U+DD17 at position 1: -1
//       U+D800 at position 0: 90     U+DD18 at position 1: -1
//       U+D800 at position 0: 100     U+DD19 at position 1: -1
//       U+D800 at position 0: 200     U+DD1A at position 1: -1
//       U+D800 at position 0: 300     U+DD1B at position 1: -1
//       U+D800 at position 0: 400     U+DD1C at position 1: -1
//       U+D800 at position 0: 500     U+DD1D at position 1: -1
//       U+D800 at position 0: 600     U+DD1E at position 1: -1
//       U+D800 at position 0: 700     U+DD1F at position 1: -1
//       U+D800 at position 0: 800     U+DD20 at position 1: -1
//       U+D800 at position 0: 900     U+DD21 at position 1: -1
//       U+D800 at position 0: 1000     U+DD22 at position 1: -1
//       U+D800 at position 0: 2000     U+DD23 at position 1: -1
//       U+D800 at position 0: 3000     U+DD24 at position 1: -1
//       U+D800 at position 0: 4000     U+DD25 at position 1: -1
//       U+D800 at position 0: 5000     U+DD26 at position 1: -1
//       U+D800 at position 0: 6000     U+DD27 at position 1: -1
//       U+D800 at position 0: 7000     U+DD28 at position 1: -1
//       U+D800 at position 0: 8000     U+DD29 at position 1: -1
//       U+D800 at position 0: 9000     U+DD2A at position 1: -1
//       U+D800 at position 0: 10000     U+DD2B at position 1: -1
//       U+D800 at position 0: 20000     U+DD2C at position 1: -1
//       U+D800 at position 0: 30000     U+DD2D at position 1: -1
//       U+D800 at position 0: 40000     U+DD2E at position 1: -1
//       U+D800 at position 0: 50000     U+DD2F at position 1: -1
//       U+D800 at position 0: 60000     U+DD30 at position 1: -1
//       U+D800 at position 0: 70000     U+DD31 at position 1: -1
//       U+D800 at position 0: 80000     U+DD32 at position 1: -1
//       U+D800 at position 0: 90000     U+DD33 at position 1: -1
' Define a UTF32 value for each character in the 
' Aegean numbering system.
For utf32 As Integer = &h10107 To &h10133
   Dim surrogate As String = Char.ConvertFromUtf32(utf32)
   For ctr As Integer = 0 To surrogate.Length - 1
      Console.Write("U+{0:X4} at position {1}: {2}     ", 
                        Convert.ToUInt16(surrogate(ctr)), ctr,  
                        Char.GetNumericValue(surrogate, ctr))
   Next
   Console.WriteLine()
Next    
' The example displays the following output:
'       U+D800 at position 0: 1     U+DD07 at position 1: -1
'       U+D800 at position 0: 2     U+DD08 at position 1: -1
'       U+D800 at position 0: 3     U+DD09 at position 1: -1
'       U+D800 at position 0: 4     U+DD0A at position 1: -1
'       U+D800 at position 0: 5     U+DD0B at position 1: -1
'       U+D800 at position 0: 6     U+DD0C at position 1: -1
'       U+D800 at position 0: 7     U+DD0D at position 1: -1
'       U+D800 at position 0: 8     U+DD0E at position 1: -1
'       U+D800 at position 0: 9     U+DD0F at position 1: -1
'       U+D800 at position 0: 10     U+DD10 at position 1: -1
'       U+D800 at position 0: 20     U+DD11 at position 1: -1
'       U+D800 at position 0: 30     U+DD12 at position 1: -1
'       U+D800 at position 0: 40     U+DD13 at position 1: -1
'       U+D800 at position 0: 50     U+DD14 at position 1: -1
'       U+D800 at position 0: 60     U+DD15 at position 1: -1
'       U+D800 at position 0: 70     U+DD16 at position 1: -1
'       U+D800 at position 0: 80     U+DD17 at position 1: -1
'       U+D800 at position 0: 90     U+DD18 at position 1: -1
'       U+D800 at position 0: 100     U+DD19 at position 1: -1
'       U+D800 at position 0: 200     U+DD1A at position 1: -1
'       U+D800 at position 0: 300     U+DD1B at position 1: -1
'       U+D800 at position 0: 400     U+DD1C at position 1: -1
'       U+D800 at position 0: 500     U+DD1D at position 1: -1
'       U+D800 at position 0: 600     U+DD1E at position 1: -1
'       U+D800 at position 0: 700     U+DD1F at position 1: -1
'       U+D800 at position 0: 800     U+DD20 at position 1: -1
'       U+D800 at position 0: 900     U+DD21 at position 1: -1
'       U+D800 at position 0: 1000     U+DD22 at position 1: -1
'       U+D800 at position 0: 2000     U+DD23 at position 1: -1
'       U+D800 at position 0: 3000     U+DD24 at position 1: -1
'       U+D800 at position 0: 4000     U+DD25 at position 1: -1
'       U+D800 at position 0: 5000     U+DD26 at position 1: -1
'       U+D800 at position 0: 6000     U+DD27 at position 1: -1
'       U+D800 at position 0: 7000     U+DD28 at position 1: -1
'       U+D800 at position 0: 8000     U+DD29 at position 1: -1
'       U+D800 at position 0: 9000     U+DD2A at position 1: -1
'       U+D800 at position 0: 10000     U+DD2B at position 1: -1
'       U+D800 at position 0: 20000     U+DD2C at position 1: -1
'       U+D800 at position 0: 30000     U+DD2D at position 1: -1
'       U+D800 at position 0: 40000     U+DD2E at position 1: -1
'       U+D800 at position 0: 50000     U+DD2F at position 1: -1
'       U+D800 at position 0: 60000     U+DD30 at position 1: -1
'       U+D800 at position 0: 70000     U+DD31 at position 1: -1
'       U+D800 at position 0: 80000     U+DD32 at position 1: -1
'       U+D800 at position 0: 90000     U+DD33 at position 1: -1

適用対象

GetNumericValue(Char)

指定された Unicode の数字を倍精度浮動小数点数に変換します。

public:
 static double GetNumericValue(char c);
public static double GetNumericValue (char c);
static member GetNumericValue : char -> double
Public Shared Function GetNumericValue (c As Char) As Double

パラメーター

c
Char

変換する Unicode 文字。

戻り値

Double

この文字が数字を表す場合は c の数値。それ以外の場合は -1.0。

次の例では、 を示します GetNumericValue

using namespace System;
int main()
{
   String^ str =  "input: 1";
   Console::WriteLine( Char::GetNumericValue( '8' ) ); // Output: "8"
   Console::WriteLine( Char::GetNumericValue( str, 7 ) ); // Output: "1"
}
using System;

public class GetNumericValueSample {
    public static void Main() {
        string str = "input: 1";

        Console.WriteLine(Char.GetNumericValue('8'));		// Output: "8"
        Console.WriteLine(Char.GetNumericValue(str, 7));	// Output: "1"
    }
}
open System

let str = "input: 1"

printfn $"{Char.GetNumericValue '8'}"       // Output: "8"
printfn $"{Char.GetNumericValue(str, 7)}"   // Output: "1"
Module GetNumericValueSample
    Sub Main()
        Dim str As String
        str = "input: 1"

        Console.WriteLine(Char.GetNumericValue("8"c))       ' Output: "8"
        Console.WriteLine(Char.GetNumericValue(str, 7))     ' Output: "1"
    End Sub
End Module

注釈

パラメーター c は、数値 Char の表現である必要があります。 たとえば、 が c "5" の場合、戻り値は 5 です。 ただし、 が c "z" の場合、戻り値は -1.0 です。

文字は、、、または のいずれかのカテゴリのメンバーである場合にのみ、関連付けられた UnicodeCategory DecimalDigitNumber 数値 LetterNumber を持っています OtherNumber

メソッドは、 が 1 つの言語文字に対応すると想定し、その文字を 10 進数に変換 GetNumericValue c できるかどうかを確認します。 ただし、Unicode 標準の一部の数値は、サロゲート ペアを形成する Char 2 つの オブジェクトによって表されます。 たとえば、大国番号システムは、コード ポイント U+10107 から U+10133 で構成されます。 次の例では、 ConvertFromUtf32 メソッドを使用して、INSTANTIATN NUMBER ONE を表す文字列をインスタンス化します。 この例の出力に示すように、この文字の大きなサロゲートまたは低いサロゲートが渡された場合、メソッドは GetNumericValue(Char) -1 を返します。

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.GetNumericValue(ch));

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

// The example displays the following output:
//       U+D800: -1
//       U+DD07: -1
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.GetNumericValue(ch))
Next
' The example displays the following output:
'       U+D800: -1
'       U+DD07: -1

こちらもご覧ください

適用対象