Int32.Parse Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengonversi representasi string dari angka ke bilangan bulat bertanda 32-bit yang setara.
Overload
Parse(String) |
Mengonversi representasi string dari angka ke bilangan bulat bertanda 32-bit yang setara. |
Parse(ReadOnlySpan<Byte>, IFormatProvider) |
Mengurai rentang karakter UTF-8 menjadi nilai. |
Parse(ReadOnlySpan<Char>, IFormatProvider) |
Mengurai rentang karakter menjadi nilai. |
Parse(String, NumberStyles) |
Mengonversi representasi string dari angka dalam gaya tertentu ke bilangan bulat bertanda tangan 32-bit yang setara. |
Parse(String, IFormatProvider) |
Mengonversi representasi string angka dalam format khusus budaya tertentu ke bilangan bulat bertanda tangan 32-bit yang setara. |
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider) |
Mengurai rentang karakter UTF-8 menjadi nilai. |
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
Mengonversi representasi rentang angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat bertanda tangan 32-bit yang setara. |
Parse(String, NumberStyles, IFormatProvider) |
Mengonversi representasi string angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat bertanda 32-bit yang setara. |
Parse(String)
- Sumber:
- Int32.cs
- Sumber:
- Int32.cs
- Sumber:
- Int32.cs
Mengonversi representasi string dari 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
s
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 tangan 32-bit menggunakan metode Int32.Parse(String). 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. |
tanda | Tanda opsional. |
Digit | Urutan digit mulai dari 0 hingga 9. |
Parameter s
ditafsirkan menggunakan gaya NumberStyles.Integer. 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 metode Int32.Parse(String, NumberStyles) atau Int32.Parse(String, NumberStyles, IFormatProvider).
Parameter s
diurai menggunakan informasi pemformatan dalam objek NumberFormatInfo yang 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<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(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 untuk diurai.
- provider
- IFormatProvider
Objek yang menyediakan informasi pemformatan khusus budaya tentang s
.
Mengembalikan
Hasil penguraian s
.
Penerapan
Berlaku untuk
Parse(String, NumberStyles)
- Sumber:
- Int32.cs
- Sumber:
- Int32.cs
- Sumber:
- Int32.cs
Mengonversi representasi string dari angka dalam gaya tertentu ke bilangan bulat bertanda tangan 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 akan ditentukan adalah Integer.
Mengembalikan
Bilangan bulat bertanda tangan 32-bit yang setara dengan angka yang ditentukan dalam s
.
Pengecualian
s
null
.
s
tidak dalam format yang sesuai dengan style
.
s
mewakili angka yang kurang dari Int32.MinValue atau lebih besar dari Int32.MaxValue.
-atau-
s
menyertakan digit pecahan non-nol.
Contoh
Contoh berikut menggunakan metode Int32.Parse(String, NumberStyles) untuk mengurai representasi string dari beberapa nilai Int32. 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 parameter s
agar operasi penguraian berhasil. Ini harus merupakan kombinasi bendera bit dari enumerasi NumberStyles. Bergantung pada nilai style
, parameter s
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 putih dapat muncul di awal s jika style menyertakan bendera NumberStyles.AllowLeadingWhite, dan dapat muncul di akhir s jika style menyertakan bendera NumberStyles.AllowTrailingWhite. |
$ | Simbol mata uang khusus budaya. Posisinya dalam string didefinisikan oleh properti NumberFormatInfo.CurrencyNegativePattern dan NumberFormatInfo.CurrencyPositivePattern budaya saat ini. Simbol mata uang budaya saat ini dapat muncul di s jika style menyertakan bendera NumberStyles.AllowCurrencySymbol. |
tanda tangan |
Tanda opsional. Tanda dapat muncul di awal s jika style menyertakan bendera NumberStyles.AllowLeadingSign, dan dapat muncul di akhir s jika style menyertakan bendera NumberStyles.AllowTrailingSign. Tanda kurung dapat digunakan dalam s untuk menunjukkan nilai negatif jika style menyertakan bendera NumberStyles.AllowParentheses. |
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 di s jika style menyertakan bendera NumberStyles.AllowThousands. |
. | Simbol titik desimal khusus budaya. Simbol titik desimal budaya saat ini dapat muncul di s jika style menyertakan bendera NumberStyles.AllowDecimalPoint. Hanya digit 0 yang dapat muncul sebagai digit pecahan agar operasi penguraian berhasil; jika fractional_digits menyertakan digit lain, 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 bendera NumberStyles.AllowExponent. |
hexdigits | Urutan digit heksadesimal dari 0 hingga f, atau 0 hingga F. |
Nota
Karakter NUL (U+0000) yang mengakhiri di s
diabaikan oleh operasi penguraian, terlepas dari nilai argumen style
.
String dengan digit saja (yang sesuai dengan gaya NumberStyles.None) selalu berhasil diurai jika berada dalam rentang jenis Int32. Sebagian besar elemen kontrol anggota NumberStyles yang tersisa yang mungkin tetapi tidak diperlukan untuk hadir dalam string input. Tabel berikut menunjukkan bagaimana anggota NumberStyles individu memengaruhi elemen yang mungkin ada di s
.
Nilai NumberStyles | Elemen yang diizinkan dalam s selain digit |
---|---|
None | Digit hanya elemen. |
AllowDecimalPoint | Titik desimal ( . ) dan elemen pecahan. |
AllowExponent | Parameter s juga dapat menggunakan notasi eksponensial. |
AllowLeadingWhite | Elemen ws di awal s . |
AllowTrailingWhite | Elemen |
AllowLeadingSign | Elemen tanda tangan |
AllowTrailingSign | Elemen tanda tangan |
AllowParentheses | Elemen tanda |
AllowThousands | Pemisah ribuan ( elemen , ). |
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 , sign , pemisah ribuan ( , ), dan desimal ( . ). |
Any | Semua gaya, kecuali s tidak dapat mewakili angka heksadesimal. |
Jika bendera NumberStyles.AllowHexSpecifier digunakan, s
harus berupa nilai heksadesimal tanpa awalan. Misalnya, "C9AF3" berhasil mengurai, tetapi "0xC9AF3" tidak. Satu-satunya bendera lain yang dapat dikombinasikan dengan parameter s
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 NumberFormatInfo yang diinisialisasi 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
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 tangan 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
s
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 properti HttpRequest.UserLanguages untuk menentukan lokal pengguna. Kemudian membuat instans objek CultureInfo yang sesuai dengan lokal tersebut. Objek NumberFormatInfo milik objek CultureInfo tersebut kemudian diteruskan ke metode Parse(String, IFormatProvider) untuk mengonversi input pengguna ke nilai Int32.
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 metode Parse(String, IFormatProvider) ini biasanya digunakan untuk mengonversi teks yang dapat diformat dalam berbagai cara ke nilai Int32. Misalnya, teks 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. |
tanda tangan |
Tanda opsional. |
digit | Urutan digit mulai dari 0 hingga 9. |
Parameter s
ditafsirkan menggunakan gaya NumberStyles.Integer. 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 metode Int32.Parse(String, NumberStyles, IFormatProvider).
Parameter provider
adalah implementasi IFormatProvider, seperti objek NumberFormatInfo atau CultureInfo. Parameter provider
menyediakan informasi khusus budaya tentang format s
. Jika provider
null
, objek NumberFormatInfo untuk budaya saat ini digunakan.
Lihat juga
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 dari 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(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 tangan 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(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 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
Pengecualian
s
null
.
s
tidak dalam format yang sesuai dengan style
.
s
mewakili angka yang kurang dari Int32.MinValue atau lebih besar dari Int32.MaxValue.
-atau-
s
menyertakan digit pecahan non-nol.
Contoh
Contoh berikut menggunakan berbagai parameter style
dan provider
untuk mengurai representasi string dari nilai Int32. 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 parameter s
agar operasi penguraian berhasil. Ini harus merupakan kombinasi bendera bit dari enumerasi NumberStyles. Bergantung pada nilai style
, parameter s
dapat mencakup elemen berikut:
[ws] [$] [tanda tangan] [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 putih dapat muncul di awal s jika style menyertakan bendera NumberStyles.AllowLeadingWhite, dan dapat muncul di akhir s jika style menyertakan bendera NumberStyles.AllowTrailingWhite. |
$ | Simbol mata uang khusus budaya. Posisinya dalam string didefinisikan oleh properti NumberFormatInfo.CurrencyPositivePattern objek NumberFormatInfo yang dikembalikan oleh metode GetFormat parameter provider . Simbol mata uang dapat muncul dalam s jika style menyertakan bendera NumberStyles.AllowCurrencySymbol. |
tanda tangan |
Tanda opsional. Tanda dapat muncul di awal s jika style menyertakan bendera NumberStyles.AllowLeadingSign atau di akhir s jika style menyertakan bendera NumberStyles.AllowTrailingSign. Tanda kurung dapat digunakan dalam s untuk menunjukkan nilai negatif jika style menyertakan bendera NumberStyles.AllowParentheses. |
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 di s jika style menyertakan bendera NumberStyles.AllowThousands. |
. | Simbol titik desimal khusus budaya. Simbol titik desimal budaya yang ditentukan oleh provider dapat muncul di s jika style menyertakan bendera NumberStyles.AllowDecimalPoint.Hanya digit 0 yang dapat muncul sebagai digit pecahan agar operasi penguraian berhasil; jika fractional_digits menyertakan digit lain, 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 bendera NumberStyles.AllowExponent. |
hexdigits | Urutan digit heksadesimal dari 0 hingga f, atau 0 hingga F. |
Nota
Karakter NUL (U+0000) yang mengakhiri di s
diabaikan oleh operasi penguraian, terlepas dari nilai argumen style
.
String dengan digit desimal saja (yang sesuai dengan gaya NumberStyles.None) selalu berhasil diurai jika berada dalam rentang jenis Int32. Sebagian besar elemen kontrol anggota NumberStyles yang tersisa yang mungkin tetapi tidak diperlukan untuk hadir dalam string input ini. Tabel berikut menunjukkan bagaimana anggota NumberStyles individu 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 | Titik desimal ( . ) dan elemen pecahan. Namun, |
NumberStyles.AllowExponent | Parameter s juga dapat menggunakan notasi eksponensial. Jika s mewakili angka dalam notasi eksponensial, angka tersebut harus mewakili bilangan bulat dalam rentang jenis data Int32 tanpa komponen pecahan bukan nol. |
NumberStyles.AllowLeadingWhite | Elemen ws di awal s . |
NumberStyles.AllowTrailingWhite | Elemen |
NumberStyles.AllowLeadingSign | Tanda positif dapat muncul sebelum digit. |
NumberStyles.AllowTrailingSign | Tanda positif dapat muncul setelah digit. |
NumberStyles.AllowParentheses | Elemen tanda |
NumberStyles.AllowThousands | Pemisah ribuan ( elemen , ). |
NumberStyles.AllowCurrencySymbol | Elemen $. |
Jika bendera NumberStyles.AllowHexSpecifier digunakan, s
harus berupa nilai heksadesimal tanpa awalan. Misalnya, "C9AF3" berhasil mengurai, tetapi "0xC9AF3" tidak. Satu-satunya bendera lain yang dapat hadir di style
adalah NumberStyles.AllowLeadingWhite dan NumberStyles.AllowTrailingWhite. (Enumerasi NumberStyles memiliki gaya angka komposit, NumberStyles.HexNumber, yang mencakup kedua bendera spasi putih.)
Parameter provider
adalah implementasi IFormatProvider, seperti objek NumberFormatInfo atau CultureInfo. Parameter provider
memasok informasi khusus budaya yang digunakan dalam penguraian. Jika provider
null
, objek NumberFormatInfo untuk budaya saat ini digunakan.