Int32.Parse Metode

Definisi

Mengonversi representasi string angka ke bilangan bulat bertanda 32-bit yang setara.

Overload

Parse(String, NumberStyles, IFormatProvider)

Mengonversi representasi string angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat bertanda 32-bit yang setara.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Mengonversi representasi rentang angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat bertanda 32-bit yang setara.

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Menguraikan rentang karakter UTF-8 ke dalam nilai.

Parse(String, IFormatProvider)

Mengonversi representasi string dari angka dalam format khusus budaya tertentu ke bilangan bulat bertanda 32-bit yang setara.

Parse(String)

Mengonversi representasi string dari angka ke bilangan bulat bertanda tangan 32-bit yang setara.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Mengurai rentang karakter ke dalam nilai.

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Menguraikan rentang karakter UTF-8 ke dalam nilai.

Parse(String, NumberStyles)

Mengonversi representasi string angka dalam gaya tertentu ke bilangan bulat bertanda tangan 32-bit yang setara.

Parse(String, NumberStyles, IFormatProvider)

Sumber:
Int32.cs
Sumber:
Int32.cs
Sumber:
Int32.cs

Mengonversi representasi string angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat bertanda 32-bit yang setara.

public:
 static int Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
 static int Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<int>::Parse;
public static int Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
public static int Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> int
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As Integer

Parameter

s
String

String yang berisi angka untuk dikonversi.

style
NumberStyles

Kombinasi bitwise dari nilai enumerasi yang menunjukkan elemen gaya yang dapat ada di s. Nilai umum yang akan ditentukan adalah Integer.

provider
IFormatProvider

Objek yang memasok informasi khusus budaya tentang format s.

Mengembalikan

Bilangan bulat bertanda tangan 32-bit yang setara dengan angka yang ditentukan dalam s.

Penerapan

Pengecualian

sadalah null.

style bukan nilai NumberStyles .

-atau-

style bukan kombinasi nilai AllowHexSpecifier dan HexNumber .

s tidak dalam format yang sesuai dengan style.

s mewakili angka yang kurang dari Int32.MinValue atau lebih besar dari Int32.MaxValue.

-atau-

s termasuk bukan nol, digit pecahan.

Contoh

Contoh berikut menggunakan berbagai style parameter dan provider untuk mengurai representasi Int32 string nilai. Ini juga menggambarkan beberapa cara berbeda string yang sama dapat ditafsirkan tergantung pada budaya yang informasi pemformatannya digunakan untuk operasi penguraian.

using namespace System;
using namespace System::Globalization;

public ref class ParseInt32
{
public:
   static void Main()
   {
      Convert("12,000", NumberStyles::Float | NumberStyles::AllowThousands, 
              gcnew CultureInfo("en-GB"));
      Convert("12,000", NumberStyles::Float | NumberStyles::AllowThousands,
              gcnew CultureInfo("fr-FR"));
      Convert("12,000", NumberStyles::Float, gcnew CultureInfo("en-US"));

      Convert("12 425,00", NumberStyles::Float | NumberStyles::AllowThousands,
              gcnew CultureInfo("sv-SE"));
      Convert("12,425.00", NumberStyles::Float | NumberStyles::AllowThousands,
              NumberFormatInfo::InvariantInfo);
      Convert("631,900", NumberStyles::Integer | NumberStyles::AllowDecimalPoint, 
              gcnew CultureInfo("fr-FR"));
      Convert("631,900", NumberStyles::Integer | NumberStyles::AllowDecimalPoint,
              gcnew CultureInfo("en-US"));
      Convert("631,900", NumberStyles::Integer | NumberStyles::AllowThousands,
              gcnew CultureInfo("en-US"));
   }

private:
   static void Convert(String^ value, NumberStyles style,
                               IFormatProvider^ provider)
   {
      try
      {
         int number = Int32::Parse(value, style, provider);
         Console::WriteLine("Converted '{0}' to {1}.", value, number);
      }
      catch (FormatException^)
      {
         Console::WriteLine("Unable to convert '{0}'.", value);
      }
      catch (OverflowException^)
      {
         Console::WriteLine("'{0}' is out of range of the Int32 type.", value);   
      }
   }                               
};

int main()
{
    ParseInt32::Main();
}
// This example displays the following output to the console:
//       Converted '12,000' to 12000.
//       Converted '12,000' to 12.
//       Unable to convert '12,000'.
//       Converted '12 425,00' to 12425.
//       Converted '12,425.00' to 12425.
//       '631,900' is out of range of the Int32 type.
//       Unable to convert '631,900'.
//       Converted '631,900' to 631900.
using System;
using System.Globalization;

public class ParseInt32
{
   public static void Main()
   {
      Convert("12,000", NumberStyles.Float | NumberStyles.AllowThousands,
              new CultureInfo("en-GB"));
      Convert("12,000", NumberStyles.Float | NumberStyles.AllowThousands,
              new CultureInfo("fr-FR"));
      Convert("12,000", NumberStyles.Float, new CultureInfo("en-US"));

      Convert("12 425,00", NumberStyles.Float | NumberStyles.AllowThousands,
              new CultureInfo("sv-SE"));
      Convert("12,425.00", NumberStyles.Float | NumberStyles.AllowThousands,
              NumberFormatInfo.InvariantInfo);
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowDecimalPoint,
              new CultureInfo("fr-FR"));
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowDecimalPoint,
              new CultureInfo("en-US"));
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowThousands,
              new CultureInfo("en-US"));
   }

   private static void Convert(string value, NumberStyles style,
                               IFormatProvider provider)
   {
      try
      {
         int number = Int32.Parse(value, style, provider);
         Console.WriteLine("Converted '{0}' to {1}.", value, number);
      }
      catch (FormatException)
      {
         Console.WriteLine("Unable to convert '{0}'.", value);
      }
      catch (OverflowException)
      {
         Console.WriteLine("'{0}' is out of range of the Int32 type.", value);
      }
   }
}
// This example displays the following output to the console:
//       Converted '12,000' to 12000.
//       Converted '12,000' to 12.
//       Unable to convert '12,000'.
//       Converted '12 425,00' to 12425.
//       Converted '12,425.00' to 12425.
//       '631,900' is out of range of the Int32 type.
//       Unable to convert '631,900'.
//       Converted '631,900' to 631900.
open System
open System.Globalization

let convert (value: string) (style: NumberStyles) (provider: IFormatProvider) =
    try
        let number = Int32.Parse(value, style, provider)
        printfn $"Converted '{value}' to {number}."
    with 
    | :? FormatException ->
        printfn $"Unable to convert '{value}'."
    | :? OverflowException ->
        printfn $"'{value}' is out of range of the Int32 type."

convert "12,000" (NumberStyles.Float ||| NumberStyles.AllowThousands) (CultureInfo "en-GB")
convert "12,000" (NumberStyles.Float ||| NumberStyles.AllowThousands) (CultureInfo "fr-FR")
convert "12,000" NumberStyles.Float (CultureInfo "en-US")
convert "12 425,00" (NumberStyles.Float ||| NumberStyles.AllowThousands) (CultureInfo "sv-SE")
convert "12,425.00" (NumberStyles.Float ||| NumberStyles.AllowThousands) NumberFormatInfo.InvariantInfo
convert "631,900" (NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint) (CultureInfo "fr-FR")
convert "631,900" (NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint) (CultureInfo "en-US")
convert "631,900" (NumberStyles.Integer ||| NumberStyles.AllowThousands) (CultureInfo "en-US")

// This example displays the following output to the console:
//       Converted '12,000' to 12000.
//       Converted '12,000' to 12.
//       Unable to convert '12,000'.
//       Converted '12 425,00' to 12425.
//       Converted '12,425.00' to 12425.
//       '631,900' is out of range of the Int32 type.
//       Unable to convert '631,900'.
//       Converted '631,900' to 631900.
Imports System.Globalization

Module ParseInt32
   Public Sub Main()
      Convert("12,000", NumberStyles.Float Or NumberStyles.AllowThousands, _
              New CultureInfo("en-GB"))      
      Convert("12,000", NumberStyles.Float Or NumberStyles.AllowThousands, _
              New CultureInfo("fr-FR"))
      Convert("12,000", NumberStyles.Float, New CultureInfo("en-US"))
      
      Convert("12 425,00", NumberStyles.Float Or NumberStyles.AllowThousands, _
              New CultureInfo("sv-SE")) 
      Convert("12,425.00", NumberStyles.Float Or NumberStyles.AllowThousands, _
              NumberFormatInfo.InvariantInfo) 
      Convert("631,900", NumberStyles.Integer Or NumberStyles.AllowDecimalPoint, _ 
              New CultureInfo("fr-FR"))
      Convert("631,900", NumberStyles.Integer Or NumberStyles.AllowDecimalPoint, _
              New CultureInfo("en-US"))
      Convert("631,900", NumberStyles.Integer Or NumberStyles.AllowThousands, _
              New CultureInfo("en-US"))
   End Sub

   Private Sub Convert(value As String, style As NumberStyles, _
                       provider As IFormatProvider)
      Try
         Dim number As Integer = Int32.Parse(value, style, provider)
         Console.WriteLine("Converted '{0}' to {1}.", value, number)
      Catch e As FormatException
         Console.WriteLine("Unable to convert '{0}'.", value)
      Catch e As OverflowException
         Console.WriteLine("'{0}' is out of range of the Int32 type.", value)   
      End Try
   End Sub                       
End Module
' This example displays the following output to the console:
'       Converted '12,000' to 12000.
'       Converted '12,000' to 12.
'       Unable to convert '12,000'.
'       Converted '12 425,00' to 12425.
'       Converted '12,425.00' to 12425.
'       '631,900' is out of range of the Int32 type.
'       Unable to convert '631,900'.
'       Converted '631,900' to 631900.

Keterangan

Parameter style menentukan elemen gaya (seperti spasi kosong atau tanda positif) yang diizinkan dalam s parameter agar operasi penguraian berhasil. Ini harus berupa kombinasi bendera bit dari NumberStyles enumerasi. Bergantung pada nilai style, s parameter dapat mencakup elemen berikut:

[ws] [$] [tanda] [digits,]digits[.fractional_digist][e[sign]exponential_digits][ws]

Atau, jika style mencakup AllowHexSpecifier:

[ws]hexdigits[ws]

Item dalam tanda kurung siku ([ dan ]) bersifat opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional. Spasi kosong dapat muncul di awal s jika style menyertakan NumberStyles.AllowLeadingWhite bendera, dan dapat muncul di akhir s jika style menyertakan NumberStyles.AllowTrailingWhite bendera.
$ Simbol mata uang khusus budaya. Posisinya dalam string didefinisikan oleh NumberFormatInfo.CurrencyPositivePattern properti objek yang NumberFormatInfo dikembalikan oleh GetFormat metode provider parameter . Simbol mata uang dapat muncul jika sstyle menyertakan NumberStyles.AllowCurrencySymbol bendera .
sign Tanda opsional. Tanda dapat muncul di awal s jika style menyertakan NumberStyles.AllowLeadingSign bendera atau di akhir s jika style menyertakan NumberStyles.AllowTrailingSign bendera. Tanda kurung dapat digunakan s untuk menunjukkan nilai negatif jika style menyertakan NumberStyles.AllowParentheses bendera .
Digit

fractional_digits

exponential_digits
Urutan digit dari 0 hingga 9. Untuk fractional_digits, hanya digit 0 yang valid.
, Simbol pemisah ribuan khusus budaya. Pemisah ribuan budaya yang ditentukan oleh provider dapat muncul jika sstyle menyertakan NumberStyles.AllowThousands bendera .
. Simbol titik desimal khusus budaya. Simbol titik desimal budaya yang ditentukan oleh provider dapat muncul jika sstyle menyertakan NumberStyles.AllowDecimalPoint bendera .

Hanya digit 0 yang dapat muncul sebagai digit pecahan agar operasi penguraian berhasil; jika fractional_digits menyertakan digit lain, maka OverflowException akan dilemparkan.
e Karakter 'e' atau 'E', yang menunjukkan bahwa nilai diwakili dalam notasi eksponensial. Parameter s dapat mewakili angka dalam notasi eksponensial jika style menyertakan NumberStyles.AllowExponent bendera .
hexdigits Urutan digit heksadesimal dari 0 hingga f, atau 0 hingga F.

Catatan

Setiap karakter NUL yang mengakhiri (U+0000) di s diabaikan oleh operasi penguraian, terlepas dari style nilai argumen.

String dengan digit desimal saja (yang sesuai dengan NumberStyles.None gaya) selalu berhasil diurai jika berada dalam rentang Int32 jenis. Sebagian besar elemen kontrol anggota yang tersisa NumberStyles yang mungkin tetapi tidak diperlukan untuk hadir dalam string input ini. Tabel berikut menunjukkan bagaimana anggota individu NumberStyles memengaruhi elemen yang mungkin ada di s.

Nilai NumberStyles non-komposit Elemen yang diizinkan dalam s selain digit
NumberStyles.None Digit desimal saja.
NumberStyles.AllowDecimalPoint Elemen titik desimal ( . ) dan fractional-digits . Namun, digit pecahan hanya boleh terdiri dari satu atau lebih 0 digit atau yang OverflowException dilemparkan.
NumberStyles.AllowExponent Parameter s juga dapat menggunakan notasi eksponensial. Jika s mewakili angka dalam notasi eksponensial, angka tersebut harus mewakili bilangan Int32 bulat dalam rentang jenis data tanpa komponen pecahan bukan nol.
NumberStyles.AllowLeadingWhite Elemen ws di awal s.
NumberStyles.AllowTrailingWhite Elemen ws di akhir s.
NumberStyles.AllowLeadingSign Tanda positif dapat muncul sebelum digit.
NumberStyles.AllowTrailingSign Tanda positif dapat muncul setelah digit.
NumberStyles.AllowParentheses Elemen tanda dalam bentuk tanda kurung yang menyertakan nilai numerik.
NumberStyles.AllowThousands Elemen pemisah ribuan ( , ).
NumberStyles.AllowCurrencySymbol Elemen .$

NumberStyles.AllowHexSpecifier Jika bendera digunakan, s harus berupa nilai heksadesimal tanpa awalan. Misalnya, "C9AF3" berhasil diurai, tetapi "0xC9AF3" tidak. Satu-satunya bendera lain yang dapat ada di style adalah NumberStyles.AllowLeadingWhite dan NumberStyles.AllowTrailingWhite. NumberStyles(Enumerasi memiliki gaya angka komposit, NumberStyles.HexNumber, yang mencakup kedua bendera spasi putih.)

Parameter provider adalah IFormatProvider implementasi, seperti NumberFormatInfo objek atau CultureInfo . Parameter memasok provider informasi khusus budaya yang digunakan dalam penguraian. Jika provider adalah null, NumberFormatInfo objek untuk budaya saat ini digunakan.

Lihat juga

Berlaku untuk

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Sumber:
Int32.cs
Sumber:
Int32.cs
Sumber:
Int32.cs

Mengonversi representasi rentang angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat bertanda 32-bit yang setara.

public static int Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
public static int Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> int
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As Integer

Parameter

s
ReadOnlySpan<Char>

Rentang yang berisi karakter yang mewakili angka yang akan dikonversi.

style
NumberStyles

Kombinasi bitwise dari nilai enumerasi yang menunjukkan elemen gaya yang dapat ada di s. Nilai umum yang akan ditentukan adalah Integer.

provider
IFormatProvider

Objek yang memasok informasi khusus budaya tentang format s.

Mengembalikan

Bilangan bulat bertanda tangan 32-bit yang setara dengan angka yang ditentukan dalam s.

Penerapan

Berlaku untuk

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Sumber:
Int32.cs
Sumber:
Int32.cs

Mengurai rentang karakter UTF-8 menjadi nilai.

public static int Parse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider -> int
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As Integer

Parameter

utf8Text
ReadOnlySpan<Byte>

Rentang karakter UTF-8 untuk diurai.

style
NumberStyles

Kombinasi bitwise gaya angka yang dapat ada di utf8Text.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang utf8Text.

Mengembalikan

Hasil penguraian utf8Text.

Penerapan

Berlaku untuk

Parse(String, IFormatProvider)

Sumber:
Int32.cs
Sumber:
Int32.cs
Sumber:
Int32.cs

Mengonversi representasi string angka dalam format khusus budaya tertentu ke bilangan bulat bertanda 32-bit yang setara.

public:
 static int Parse(System::String ^ s, IFormatProvider ^ provider);
public:
 static int Parse(System::String ^ s, IFormatProvider ^ provider) = IParsable<int>::Parse;
public static int Parse (string s, IFormatProvider provider);
public static int Parse (string s, IFormatProvider? provider);
static member Parse : string * IFormatProvider -> int
Public Shared Function Parse (s As String, provider As IFormatProvider) As Integer

Parameter

s
String

String yang berisi angka yang akan dikonversi.

provider
IFormatProvider

Objek yang memasok informasi pemformatan khusus budaya tentang s.

Mengembalikan

Bilangan bulat bertanda tangan 32-bit yang setara dengan angka yang ditentukan dalam s.

Penerapan

Pengecualian

sadalah null.

s bukan format yang benar.

s mewakili angka yang kurang dari Int32.MinValue atau lebih besar dari Int32.MaxValue.

Contoh

Contoh berikut adalah tombol klik penanganan aktivitas formulir Web. Ini menggunakan array yang dikembalikan oleh HttpRequest.UserLanguages properti untuk menentukan lokal pengguna. Kemudian membuat instans CultureInfo objek yang sesuai dengan lokal tersebut. Objek NumberFormatInfo milik CultureInfo objek tersebut Parse(String, IFormatProvider) kemudian diteruskan ke metode untuk mengonversi input pengguna menjadi Int32 nilai.

protected void OkToInteger_Click(object sender, EventArgs e)
{
    string locale;
    int number;
    CultureInfo culture;

    // Return if string is empty
    if (String.IsNullOrEmpty(this.inputNumber.Text))
        return;

    // Get locale of web request to determine possible format of number
    if (Request.UserLanguages.Length == 0)
        return;
    locale = Request.UserLanguages[0];
    if (String.IsNullOrEmpty(locale))
        return;

    // Instantiate CultureInfo object for the user's locale
    culture = new CultureInfo(locale);

    // Convert user input from a string to a number
    try
    {
        number = Int32.Parse(this.inputNumber.Text, culture.NumberFormat);
    }
    catch (FormatException)
    {
        return;
    }
    catch (Exception)
    {
        return;
    }
    // Output number to label on web form
    this.outputNumber.Text = "Number is " + number.ToString();
}
Protected Sub OkToInteger_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles OkToInteger.Click
   Dim locale As String
   Dim culture As CultureInfo
   Dim number As Integer

   ' Return if string is empty
   If String.IsNullOrEmpty(Me.inputNumber.Text) Then Exit Sub

   ' Get locale of web request to determine possible format of number
   If Request.UserLanguages.Length = 0 Then Exit Sub
   locale = Request.UserLanguages(0)
   If String.IsNullOrEmpty(locale) Then Exit Sub

   ' Instantiate CultureInfo object for the user's locale
   culture = New CultureInfo(locale)

   ' Convert user input from a string to a number
   Try
      number = Int32.Parse(Me.inputNumber.Text, culture.NumberFormat)
   Catch ex As FormatException
      Exit Sub
   Catch ex As Exception
      Exit Sub
   End Try

   ' Output number to label on web form
   Me.outputNumber.Text = "Number is " & number.ToString()
End Sub

Keterangan

Kelebihan beban Parse(String, IFormatProvider) metode ini biasanya digunakan untuk mengonversi teks yang dapat diformat dalam berbagai cara menjadi Int32 nilai. Misalnya, ini dapat digunakan untuk mengonversi teks yang dimasukkan oleh pengguna ke dalam kotak teks HTML menjadi nilai numerik.

Parameter s berisi sejumlah formulir:

[ws] [sign]digits[ws]

Item dalam tanda kurung siku ([ dan ]) bersifat opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional.
sign Tanda opsional.
Digit Urutan digit berkisar antara 0 hingga 9.

Parameter s ditafsirkan menggunakan NumberStyles.Integer gaya . Selain digit desimal, hanya spasi di depan dan belakang bersama dengan tanda di depan yang diizinkan. Untuk secara eksplisit menentukan elemen gaya yang dapat ada di s, gunakan Int32.Parse(String, NumberStyles, IFormatProvider) metode .

Parameter provider adalah IFormatProvider implementasi, seperti NumberFormatInfo objek atau CultureInfo . Parameter memasok provider informasi khusus budaya tentang format s. Jika provider adalah null, NumberFormatInfo objek untuk budaya saat ini digunakan.

Lihat juga

Berlaku untuk

Parse(String)

Sumber:
Int32.cs
Sumber:
Int32.cs
Sumber:
Int32.cs

Mengonversi representasi string angka ke bilangan bulat bertanda 32-bit yang setara.

public:
 static int Parse(System::String ^ s);
public static int Parse (string s);
static member Parse : string -> int
Public Shared Function Parse (s As String) As Integer

Parameter

s
String

String yang berisi angka yang akan dikonversi.

Mengembalikan

Bilangan bulat bertanda tangan 32-bit yang setara dengan angka yang terkandung dalam s.

Pengecualian

sadalah null.

s tidak dalam format yang benar.

s mewakili angka yang kurang dari Int32.MinValue atau lebih besar dari Int32.MaxValue.

Contoh

Contoh berikut menunjukkan cara mengonversi nilai string menjadi nilai bilangan bulat bertanda 32-bit menggunakan Int32.Parse(String) metode . Nilai bilangan bulat yang dihasilkan kemudian ditampilkan ke konsol.

using namespace System;

void main()
{
   array<String^>^ values = { "+13230", "-0", "1,390,146", "$190,235,421,127",
                              "0xFA1B", "163042", "-10", "007", "2147483647", 
                              "2147483648", "16e07", "134985.0", "-12034",
                              "-2147483648", "-2147483649" };
   for each (String^ value in values)
   {
      try {
         Int32 number = Int32::Parse(value); 
         Console::WriteLine("{0} --> {1}", value, number);
      }
      catch (FormatException^ e) {
         Console::WriteLine("{0}: Bad Format", value);
      }   
      catch (OverflowException^ e) {
         Console::WriteLine("{0}: Overflow", value);   
      }  
   }
}
// The example displays the following output:
//       +13230 --> 13230
//       -0 --> 0
//       1,390,146: Bad Format
//       $190,235,421,127: Bad Format
//       0xFA1B: Bad Format
//       163042 --> 163042
//       -10 --> -10
//       007 --> 7
//       2147483647 --> 2147483647
//       2147483648: Overflow
//       16e07: Bad Format
//       134985.0: Bad Format
//       -12034 --> -12034
//       -2147483648 --> -2147483648
//       -2147483649: Overflow
using System;

public class Example
{
   public static void Main()
   {
      string[] values = { "+13230", "-0", "1,390,146", "$190,235,421,127",
                          "0xFA1B", "163042", "-10", "007", "2147483647",
                          "2147483648", "16e07", "134985.0", "-12034",
                          "-2147483648", "-2147483649" };
      foreach (string value in values)
      {
         try {
            int number = Int32.Parse(value);
            Console.WriteLine("{0} --> {1}", value, number);
         }
         catch (FormatException) {
            Console.WriteLine("{0}: Bad Format", value);
         }
         catch (OverflowException) {
            Console.WriteLine("{0}: Overflow", value);
         }
      }
   }
}
// The example displays the following output:
//       +13230 --> 13230
//       -0 --> 0
//       1,390,146: Bad Format
//       $190,235,421,127: Bad Format
//       0xFA1B: Bad Format
//       163042 --> 163042
//       -10 --> -10
//       007 --> 7
//       2147483647 --> 2147483647
//       2147483648: Overflow
//       16e07: Bad Format
//       134985.0: Bad Format
//       -12034 --> -12034
//       -2147483648 --> -2147483648
//       -2147483649: Overflow
open System

let values =
    [ "+13230"; "-0"; "1,390,146"; "$190,235,421,127"
      "0xFA1B"; "163042"; "-10"; "007"; "2147483647"
      "2147483648"; "16e07"; "134985.0"; "-12034"
      "-2147483648"; "-2147483649" ]

for value in values do
    try
        let number = Int32.Parse value
        printfn $"{value} --> {number}"
    with 
    | :? FormatException ->
        printfn $"{value}: Bad Format"
    | :? OverflowException ->
        printfn $"{value}: Overflow"
    

// The example displays the following output:
//       +13230 --> 13230
//       -0 --> 0
//       1,390,146: Bad Format
//       $190,235,421,127: Bad Format
//       0xFA1B: Bad Format
//       163042 --> 163042
//       -10 --> -10
//       007 --> 7
//       2147483647 --> 2147483647
//       2147483648: Overflow
//       16e07: Bad Format
//       134985.0: Bad Format
//       -12034 --> -12034
//       -2147483648 --> -2147483648
//       -2147483649: Overflow
Module Example
   Public Sub Main()
      Dim values() As String = { "+13230", "-0", "1,390,146", "$190,235,421,127",
                                 "0xFA1B", "163042", "-10", "007", "2147483647", 
                                 "2147483648", "16e07", "134985.0", "-12034",
                                 "-2147483648", "-2147483649"  }
      For Each value As String In values
         Try
            Dim number As Integer = Int32.Parse(value) 
            Console.WriteLine("{0} --> {1}", value, number)
         Catch e As FormatException
            Console.WriteLine("{0}: Bad Format", value)
         Catch e As OverflowException
            Console.WriteLine("{0}: Overflow", value)   
         End Try  
      Next
   End Sub
End Module
' The example displays the following output:
'       +13230 --> 13230
'       -0 --> 0
'       1,390,146: Bad Format
'       $190,235,421,127: Bad Format
'       0xFA1B: Bad Format
'       163042 --> 163042
'       -10 --> -10
'       007 --> 7
'       2147483647 --> 2147483647
'       2147483648: Overflow
'       16e07: Bad Format
'       134985.0: Bad Format
'       -12034 --> -12034
'       -2147483648 --> -2147483648
'       -2147483649: Overflow

Keterangan

Parameter s berisi sejumlah formulir:

[ws] [sign]digits[ws]

Item dalam tanda kurung siku ([ dan ]) bersifat opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional.
sign Tanda opsional.
Digit Urutan digit berkisar antara 0 hingga 9.

Parameter s ditafsirkan menggunakan NumberStyles.Integer gaya . Selain digit desimal, hanya spasi di depan dan belakang bersama dengan tanda di depan yang diizinkan. Untuk secara eksplisit menentukan elemen gaya yang dapat ada di s, gunakan Int32.Parse(String, NumberStyles) metode atau Int32.Parse(String, NumberStyles, IFormatProvider) .

Parameter s diurai menggunakan informasi pemformatan dalam objek yang NumberFormatInfo diinisialisasi untuk budaya sistem saat ini. Untuk informasi selengkapnya, lihat CurrentInfo. Untuk mengurai string menggunakan informasi pemformatan dari beberapa budaya lain, gunakan metode .Int32.Parse(String, NumberStyles, IFormatProvider)

Lihat juga

Berlaku untuk

Parse(ReadOnlySpan<Char>, IFormatProvider)

Sumber:
Int32.cs
Sumber:
Int32.cs
Sumber:
Int32.cs

Mengurai rentang karakter menjadi nilai.

public:
 static int Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<int>::Parse;
public static int Parse (ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> int
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As Integer

Parameter

s
ReadOnlySpan<Char>

Rentang karakter yang akan diurai.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang s.

Mengembalikan

Hasil penguraian s.

Penerapan

Berlaku untuk

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Sumber:
Int32.cs
Sumber:
Int32.cs

Mengurai rentang karakter UTF-8 menjadi nilai.

public:
 static int Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<int>::Parse;
public static int Parse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> int
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As Integer

Parameter

utf8Text
ReadOnlySpan<Byte>

Rentang karakter UTF-8 untuk diurai.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang utf8Text.

Mengembalikan

Hasil penguraian utf8Text.

Penerapan

Berlaku untuk

Parse(String, NumberStyles)

Sumber:
Int32.cs
Sumber:
Int32.cs
Sumber:
Int32.cs

Mengonversi representasi string angka dalam gaya tertentu ke bilangan bulat bertanda 32-bit yang setara.

public:
 static int Parse(System::String ^ s, System::Globalization::NumberStyles style);
public static int Parse (string s, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> int
Public Shared Function Parse (s As String, style As NumberStyles) As Integer

Parameter

s
String

String yang berisi angka yang akan dikonversi.

style
NumberStyles

Kombinasi bitwise dari nilai enumerasi yang menunjukkan elemen gaya yang dapat ada di s. Nilai umum yang ditentukan adalah Integer.

Mengembalikan

Bilangan bulat bertanda tangan 32-bit yang setara dengan angka yang ditentukan dalam s.

Pengecualian

sadalah null.

style bukan nilai NumberStyles .

-atau-

style bukan kombinasi nilai AllowHexSpecifier dan HexNumber .

s tidak dalam format yang sesuai dengan style.

s mewakili angka yang kurang dari Int32.MinValue atau lebih besar dari Int32.MaxValue.

-atau-

s termasuk digit bukan nol dan pecahan.

Contoh

Contoh berikut menggunakan Int32.Parse(String, NumberStyles) metode untuk mengurai representasi string dari beberapa Int32 nilai. Budaya saat ini untuk contohnya adalah en-US.

using namespace System;
using namespace System::Globalization;

public ref class ParseInt32
{
public:
   static void Main()
   {
      Convert("104.0", NumberStyles::AllowDecimalPoint);
      Convert("104.9", NumberStyles::AllowDecimalPoint);
      Convert(" $17,198,064.42", NumberStyles::AllowCurrencySymbol |
                                 NumberStyles::Number);
      Convert("103E06", NumberStyles::AllowExponent);
      Convert("-1,345,791", NumberStyles::AllowThousands);
      Convert("(1,345,791)", NumberStyles::AllowThousands |
                             NumberStyles::AllowParentheses);
   }

private:
   static void Convert(String^ value, NumberStyles style)
   {
      try
      {
         int number = Int32::Parse(value, style);
         Console::WriteLine("Converted '{0}' to {1}.", value, number);
      }
      catch (FormatException^)
      {
         Console::WriteLine("Unable to convert '{0}'.", value);
      }
      catch (OverflowException^)
      {
         Console::WriteLine("'{0}' is out of range of the Int32 type.", value);
      }
   }
};

int main()
{
    ParseInt32::Main();
}
// The example displays the following output to the console:
//       Converted '104.0' to 104.
//       '104.9' is out of range of the Int32 type.
//       ' $17,198,064.42' is out of range of the Int32 type.
//       Converted '103E06' to 103000000.
//       Unable to convert '-1,345,791'.
//       Converted '(1,345,791)' to -1345791.
using System;
using System.Globalization;

public class ParseInt32
{
   public static void Main()
   {
      Convert("104.0", NumberStyles.AllowDecimalPoint);
      Convert("104.9", NumberStyles.AllowDecimalPoint);
      Convert(" $17,198,064.42", NumberStyles.AllowCurrencySymbol |
                                 NumberStyles.Number);
      Convert("103E06", NumberStyles.AllowExponent);
      Convert("-1,345,791", NumberStyles.AllowThousands);
      Convert("(1,345,791)", NumberStyles.AllowThousands |
                             NumberStyles.AllowParentheses);
   }

   private static void Convert(string value, NumberStyles style)
   {
      try
      {
         int number = Int32.Parse(value, style);
         Console.WriteLine("Converted '{0}' to {1}.", value, number);
      }
      catch (FormatException)
      {
         Console.WriteLine("Unable to convert '{0}'.", value);
      }
      catch (OverflowException)
      {
         Console.WriteLine("'{0}' is out of range of the Int32 type.", value);
      }
   }
}
// The example displays the following output to the console:
//       Converted '104.0' to 104.
//       '104.9' is out of range of the Int32 type.
//       ' $17,198,064.42' is out of range of the Int32 type.
//       Converted '103E06' to 103000000.
//       Unable to convert '-1,345,791'.
//       Converted '(1,345,791)' to -1345791.
open System
open System.Globalization

let convert value (style: NumberStyles) =
    try
        let number = Int32.Parse(value, style)
        printfn $"Converted '{value}' to {number}."
    with 
    | :? FormatException ->
        printfn $"Unable to convert '{value}'."
    | :? OverflowException ->
        printfn $"'{value}' is out of range of the Int32 type."

convert "104.0" NumberStyles.AllowDecimalPoint
convert "104.9" NumberStyles.AllowDecimalPoint
convert " $17,198,064.42" (NumberStyles.AllowCurrencySymbol ||| NumberStyles.Number)
convert "103E06" NumberStyles.AllowExponent
convert "-1,345,791" NumberStyles.AllowThousands
convert "(1,345,791)" (NumberStyles.AllowThousands ||| NumberStyles.AllowParentheses)


// The example displays the following output to the console:
//       Converted '104.0' to 104.
//       '104.9' is out of range of the Int32 type.
//       ' $17,198,064.42' is out of range of the Int32 type.
//       Converted '103E06' to 103000000.
//       Unable to convert '-1,345,791'.
//       Converted '(1,345,791)' to -1345791.
Imports System.Globalization

Module ParseInt32
   Public Sub Main()
      Convert("104.0", NumberStyles.AllowDecimalPoint)    
      Convert("104.9", NumberStyles.AllowDecimalPoint)
      Convert(" $17,198,064.42", NumberStyles.AllowCurrencySymbol Or _
                                 NumberStyles.Number)
      Convert("103E06", NumberStyles.AllowExponent)  
      Convert("-1,345,791", NumberStyles.AllowThousands)
      Convert("(1,345,791)", NumberStyles.AllowThousands Or _
                             NumberStyles.AllowParentheses)
   End Sub
   
   Private Sub Convert(value As String, style As NumberStyles)
      Try
         Dim number As Integer = Int32.Parse(value, style)
         Console.WriteLine("Converted '{0}' to {1}.", value, number)
      Catch e As FormatException
         Console.WriteLine("Unable to convert '{0}'.", value)
      Catch e As OverflowException
         Console.WriteLine("'{0}' is out of range of the Int32 type.", value)   
      End Try
   End Sub
End Module
' The example displays the following output to the console:
'       Converted '104.0' to 104.
'       '104.9' is out of range of the Int32 type.
'       ' $17,198,064.42' is out of range of the Int32 type.
'       Converted '103E06' to 103000000.
'       Unable to convert '-1,345,791'.
'       Converted '(1,345,791)' to -1345791.

Keterangan

Parameter style menentukan elemen gaya (seperti spasi kosong, simbol tanda positif atau negatif, atau simbol pemisah ribuan) yang diizinkan dalam s parameter agar operasi penguraian berhasil. Ini harus berupa kombinasi bendera bit dari NumberStyles enumerasi. Bergantung pada nilai style, s parameter dapat mencakup elemen berikut:

[ws] [$] [tanda tangan] [digits,]digits[.fractional_digits][e[sign]exponential_digits][ws]

Atau, jika style mencakup AllowHexSpecifier:

[ws]hexdigits[ws]

Item dalam tanda kurung siku ([ dan ]) bersifat opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional. Spasi kosong dapat muncul di awal s jika style menyertakan NumberStyles.AllowLeadingWhite bendera, dan dapat muncul di akhir s jika style menyertakan NumberStyles.AllowTrailingWhite bendera.
$ Simbol mata uang khusus budaya. Posisinya dalam string didefinisikan oleh NumberFormatInfo.CurrencyNegativePattern properti dan NumberFormatInfo.CurrencyPositivePattern dari budaya saat ini. Simbol mata uang budaya saat ini dapat muncul jika sstyle menyertakan NumberStyles.AllowCurrencySymbol bendera .
sign Tanda opsional. Tanda dapat muncul di awal s jika style menyertakan NumberStyles.AllowLeadingSign bendera, dan dapat muncul di akhir s jika style menyertakan NumberStyles.AllowTrailingSign bendera. Tanda kurung dapat digunakan s untuk menunjukkan nilai negatif jika style menyertakan NumberStyles.AllowParentheses bendera.
Digit

fractional_digits

exponential_digits
Urutan digit dari 0 hingga 9. Untuk fractional_digits, hanya digit 0 yang valid.
, Simbol pemisah ribuan khusus budaya. Pemisah ribuan budaya saat ini dapat muncul s jika style menyertakan NumberStyles.AllowThousands bendera.
. Simbol titik desimal khusus budaya. Simbol titik desimal budaya saat ini dapat muncul jika sstyle menyertakan NumberStyles.AllowDecimalPoint bendera . Hanya digit 0 yang dapat muncul sebagai digit pecahan agar operasi penguraian berhasil; jika fractional_digits menyertakan digit lain, maka OverflowException akan dilemparkan.
e Karakter 'e' atau 'E', yang menunjukkan bahwa nilai diwakili dalam notasi eksponensial. Parameter s dapat mewakili angka dalam notasi eksponensial jika style menyertakan NumberStyles.AllowExponent bendera .
hexdigits Urutan digit heksadesimal dari 0 hingga f, atau 0 hingga F.

Catatan

Karakter NUL (U+0000) s yang mengakhiri akan diabaikan oleh operasi penguraian, terlepas dari style nilai argumen.

String dengan digit saja (yang sesuai dengan NumberStyles.None gaya) selalu berhasil diurai jika berada dalam rentang Int32 jenis. Sebagian besar elemen kontrol anggota yang tersisa NumberStyles yang mungkin tetapi tidak diperlukan untuk hadir dalam string input. Tabel berikut menunjukkan bagaimana anggota individu NumberStyles memengaruhi elemen yang mungkin ada di s.

Nilai NumberStyles Elemen yang diizinkan dalam s selain digit
None Elemen digit saja.
AllowDecimalPoint Elemen titik desimal ( . ) dan digit pecahan .
AllowExponent Parameter s juga dapat menggunakan notasi eksponensial.
AllowLeadingWhite Elemen ws di awal s.
AllowTrailingWhite Elemen ws di akhir s.
AllowLeadingSign Elemen tanda di awal s.
AllowTrailingSign Elemen tanda di akhir s.
AllowParentheses Elemen tanda tangan dalam bentuk tanda kurung yang menyertakan nilai numerik.
AllowThousands Elemen pemisah ribuan ( , ) .
AllowCurrencySymbol Elemen .$
Currency Semua. Parameter s tidak dapat mewakili angka heksadesimal atau angka dalam notasi eksponensial.
Float Elemen ws di awal atau akhir s, tanda di awal s, dan simbol titik desimal ( . ). Parameter s juga dapat menggunakan notasi eksponensial.
Number Elemen ws, , signribuan pemisah ( , ), dan titik desimal ( . ).
Any Semua gaya, kecuali s tidak dapat mewakili angka heksadesimal.

NumberStyles.AllowHexSpecifier Jika bendera digunakan, s harus berupa nilai heksadesimal tanpa awalan. Misalnya, "C9AF3" berhasil diurai, tetapi "0xC9AF3" tidak. Satu-satunya bendera lain yang dapat dikombinasikan dengan s parameternya adalah NumberStyles.AllowLeadingWhite dan NumberStyles.AllowTrailingWhite. (Enumerasi NumberStyles mencakup gaya angka komposit, NumberStyles.HexNumber, yang mencakup kedua bendera spasi putih.)

Parameter s diurai menggunakan informasi pemformatan dalam objek yang diinisialisasi NumberFormatInfo untuk budaya sistem saat ini. Untuk menentukan budaya yang informasi pemformatannya digunakan untuk operasi penguraian, panggil Int32.Parse(String, NumberStyles, IFormatProvider) kelebihan beban.

Lihat juga

Berlaku untuk