Int32.Parse Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir sayının dize gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür.
Aşırı Yüklemeler
Parse(String, NumberStyles, IFormatProvider) |
Belirtilen stilde ve kültüre özgü biçimdeki bir sayının dize gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür. |
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
Bir sayının belirtilen stil ve kültüre özgü biçimdeki span gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür. |
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider) |
UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor. |
Parse(String, IFormatProvider) |
Belirtilen kültüre özgü biçimdeki bir sayının dize gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür. |
Parse(String) |
Bir sayının dize gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür. |
Parse(ReadOnlySpan<Char>, IFormatProvider) |
Bir karakter aralığını bir değere ayrıştırıyor. |
Parse(ReadOnlySpan<Byte>, IFormatProvider) |
UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor. |
Parse(String, NumberStyles) |
Belirtilen stildeki bir sayının dize gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür. |
Parse(String, NumberStyles, IFormatProvider)
Belirtilen stilde ve kültüre özgü biçimdeki bir sayının dize gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür.
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
Parametreler
- s
- String
Dönüştürülecek sayıyı içeren bir dize.
- style
- NumberStyles
içinde bulunabilecek s
stil öğelerini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değerdir Integer.
- provider
- IFormatProvider
biçimi s
hakkında kültüre özgü bilgiler sağlayan bir nesne.
Döndürülenler
içinde belirtilen s
sayıya eşdeğer 32 bit imzalı tamsayı.
Uygulamalar
Özel durumlar
s
, null
değeridir.
style
bir NumberStyles değer değildir.
-veya-
style
ve HexNumber değerlerinin AllowHexSpecifier birleşimi değildir.
s
ile style
uyumlu bir biçimde değil.
s
Int32.MinValue değerinden küçük veya Int32.MaxValue değerinden büyük bir sayıyı temsil eder.
-veya-
s
sıfır olmayan kesirli basamaklar içerir.
Örnekler
Aşağıdaki örnek, değerlerin style
dize gösterimlerini Int32 ayrıştırmak için çeşitli ve provider
parametreleri kullanır. Ayrıca, biçimlendirme bilgileri ayrıştırma işlemi için kullanılan kültüre bağlı olarak aynı dizenin yorumlanma yollarından bazılarını da gösterir.
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.
Açıklamalar
parametresi, style
ayrıştırma işleminin başarılı olması için parametrede s
izin verilen stil öğelerini (boşluk veya pozitif işaret gibi) tanımlar. Sabit listesindeki bit bayraklarının NumberStyles bir bileşimi olmalıdır. değerine style
s
bağlı olarak parametresi aşağıdaki öğeleri içerebilir:
[ws] [$] [sign] [digits,]digits[.fractional_digist][e[sign]exponential_digits][ws]
Veya içeriyorsa style
AllowHexSpecifier:
[ws]hexdigits[ws]
Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.
Öğe | Açıklama |
---|---|
Ws | İsteğe bağlı beyaz boşluk. Bayrağı içeriyorsa boşluk başında s style ve bayrağı içeriyorsa sonunda s style NumberStyles.AllowTrailingWhite görüntülenebilir.NumberStyles.AllowLeadingWhite |
$ | Kültüre özgü para birimi simgesi. Dizedeki konumu, parametresinin yöntemi provider tarafından NumberFormatInfo.CurrencyPositivePattern döndürülen nesnenin NumberFormatInfo özelliği tarafından GetFormat tanımlanır. Bayrağı içeriyorsa NumberStyles.AllowCurrencySymbol para birimi simgesi içinde s style görünebilir. |
sign | İsteğe bağlı bir işaret. İşaret, bayrağı içeriyorsa başında s veya bayrağı içeriyorsa sonunda NumberStyles.AllowTrailingSigns style görüntülenebilir.style NumberStyles.AllowLeadingSign Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirs . |
Basamak fractional_digits exponential_digits |
0 İle 9 arasında bir basamak dizisi. fractional_digits için yalnızca 0 rakamı geçerlidir. |
, | Kültüre özgü binler basamaklarını ayıran simge. tarafından belirtilen provider kültürün binlik ayırıcısı bayrağını style içeriyorsa NumberStyles.AllowThousands içinde s görünebilir. |
. | Bir kültüre özgü ondalık nokta sembolü. bayrağını içeriyorsaNumberStyles.AllowDecimalPoint, tarafından provider belirtilen kültürün ondalık nokta simgesi içinde s style görünebilir.Ayrıştırma işleminin başarılı olması için kesirli basamak olarak yalnızca 0 rakamı görüntülenebilir; fractional_digits başka bir rakam içeriyorsa, bir OverflowException oluşturulur. |
E | Değerin üstel gösterimde temsil edildiğini gösteren 'e' veya 'E' karakteri. parametresi, s bayrağını içeriyorsa bir sayıyı üstel gösteriminde style NumberStyles.AllowExponent gösterebilir. |
hexdigits | 0 İle f veya 0 ile f arasında onaltılık basamak dizisi. |
Not
içindeki s
sonlandırıcı NUL (U+0000) karakterleri, bağımsız değişkenin değerinden style
bağımsız olarak ayrıştırma işlemi tarafından yoksayılır.
Yalnızca ondalık basamağı olan bir dize (stile NumberStyles.None karşılık gelir) türün aralığındaysa Int32 her zaman başarıyla ayrıştırılır. Kalan NumberStyles üyelerin çoğu, bu giriş dizesinde bulunması gerekmeyen öğeleri denetler. Aşağıdaki tabloda, tek tek NumberStyles üyelerin içinde s
bulunabilecek öğeleri nasıl etkilediği gösterilir.
Bileşik olmayan NumberStyles değerleri | Basamaklara olarak s bileşeninde izin verilen öğeler |
---|---|
NumberStyles.None | Yalnızca ondalık basamaklar. |
NumberStyles.AllowDecimalPoint | Ondalık ayırıcı ( . ) ve kesirli basamaklar öğeleri. Ancak, kesirli basamaklar yalnızca bir veya daha fazla 0 basamak içermelidir veya bir OverflowException oluşturulur. |
NumberStyles.AllowExponent | parametresi üstel s gösterimi de kullanabilir. s Üstel gösterimi olan bir sayıyı temsil ediyorsanız, sıfır olmayan kesirli bir bileşen olmadan veri türü aralığındaki Int32 bir tamsayıyı temsil etmelidir. |
NumberStyles.AllowLeadingWhite | başındaki s ws öğesi. |
NumberStyles.AllowTrailingWhite | sonundaki s ws öğesi. |
NumberStyles.AllowLeadingSign | Basamakların önüne pozitif bir işaret gelebilir. |
NumberStyles.AllowTrailingSign | Basamakların ardından pozitif bir işaret görünebilir. |
NumberStyles.AllowParentheses | Sayısal değeri kapsayan parantez biçimindeki sign öğesi. |
NumberStyles.AllowThousands | Binlik ayırıcısı ( , ) öğesi. |
NumberStyles.AllowCurrencySymbol | $ öğesi. |
NumberStyles.AllowHexSpecifier Bayrağı kullanılıyorsa, s
ön ek olmadan onaltılık bir değer olmalıdır. Örneğin, "C9AF3" başarıyla ayrıştırılsa da "0xC9AF3" ayrıştırılmaz. içinde bulunabilecek style
diğer bayraklar yalnızca ve NumberStyles.AllowTrailingWhite'tirNumberStyles.AllowLeadingWhite. (Numaralandırma, NumberStyles her iki boşluk bayrağını da içeren bileşik sayı stiline NumberStyles.HexNumbersahiptir.)
provider
parametresi, veya CultureInfo nesnesi gibi bir IFormatProviderNumberFormatInfo uygulamadır. provider
parametresi, ayrıştırmada kullanılan kültüre özgü bilgiler sağlar. ise provider
null
, NumberFormatInfo geçerli kültürün nesnesi kullanılır.
Ayrıca bkz.
Şunlara uygulanır
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
Bir sayının belirtilen stil ve kültüre özgü biçimdeki span gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür.
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
Parametreler
- s
- ReadOnlySpan<Char>
Dönüştürülecek sayıyı temsil eden karakterleri içeren bir yayılma alanı.
- style
- NumberStyles
içinde bulunabilecek s
stil öğelerini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değerdir Integer.
- provider
- IFormatProvider
biçimi s
hakkında kültüre özgü bilgiler sağlayan bir nesne.
Döndürülenler
içinde belirtilen s
sayıya eşdeğer 32 bit imzalı tamsayı.
Uygulamalar
Şunlara uygulanır
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)
UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor.
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
Parametreler
- utf8Text
- ReadOnlySpan<Byte>
Ayrıştırılacak UTF-8 karakter aralığı.
- style
- NumberStyles
içinde utf8Text
bulunabilecek sayı stillerinin bit düzeyinde birleşimi.
- provider
- IFormatProvider
hakkında utf8Text
kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
Döndürülenler
ayrıştırma utf8Text
işleminin sonucu.
Uygulamalar
Şunlara uygulanır
Parse(String, IFormatProvider)
Belirtilen kültüre özgü biçimdeki bir sayının dize gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür.
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
Parametreler
- s
- String
Dönüştürülecek sayıyı içeren bir dize.
- provider
- IFormatProvider
hakkında s
kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
Döndürülenler
içinde belirtilen s
sayıya eşdeğer 32 bit imzalı tamsayı.
Uygulamalar
Özel durumlar
s
, null
değeridir.
s
doğru biçimde değil.
s
Int32.MinValue değerinden küçük veya Int32.MaxValue değerinden büyük bir sayıyı temsil eder.
Örnekler
Aşağıdaki örnek, bir Web formunun düğme tıklamalı olay işleyicisidir. Kullanıcının yerel ayarını belirlemek için özelliği tarafından HttpRequest.UserLanguages döndürülen diziyi kullanır. Ardından bu yerel ayara karşılık gelen bir CultureInfo nesnenin örneğini oluşturur. Daha NumberFormatInfo sonra bu nesneye CultureInfo ait olan nesne, kullanıcının girişini bir Int32 değere dönüştürmek için yöntemine geçirilirParse(String, IFormatProvider).
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
Açıklamalar
Yöntemin Parse(String, IFormatProvider) bu aşırı yüklemesi genellikle çeşitli yollarla biçimlendirilebilen metni bir Int32 değere dönüştürmek için kullanılır. Örneğin, bir kullanıcı tarafından bir HTML metin kutusuna girilen metni sayısal bir değere dönüştürmek için kullanılabilir.
s
parametresi formun bir sayısını içerir:
[ws][sign]digits[ws]
Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.
Öğe | Açıklama |
---|---|
Ws | İsteğe bağlı beyaz boşluk. |
sign | İsteğe bağlı bir işaret. |
Basamak | 0 İle 9 arasında değişen bir basamak dizisi. |
s
parametresi stil kullanılarak NumberStyles.Integer yorumlanır. Ondalık basamakların yanı sıra, baştaki ve sondaki boşluklara önünde bir im ile birlikte izin verilir. içinde s
bulunabilecek stil öğelerini açıkça tanımlamak için yöntemini kullanın Int32.Parse(String, NumberStyles, IFormatProvider) .
provider
parametresi, veya CultureInfo nesnesi gibi bir IFormatProviderNumberFormatInfo uygulamadır. parametresi, provider
biçimi s
hakkında kültüre özgü bilgiler sağlar. ise provider
null
, NumberFormatInfo geçerli kültürün nesnesi kullanılır.
Ayrıca bkz.
Şunlara uygulanır
Parse(String)
Bir sayının dize gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür.
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
Parametreler
- s
- String
Dönüştürülecek sayıyı içeren bir dize.
Döndürülenler
içinde bulunan sayıya eşdeğer 32 bit imzalı s
tamsayı.
Özel durumlar
s
, null
değeridir.
s
doğru biçimde değil.
s
Int32.MinValue değerinden küçük veya Int32.MaxValue değerinden büyük bir sayıyı temsil eder.
Örnekler
Aşağıdaki örnekte, yöntemini kullanarak bir dize değerinin 32 bit imzalı tamsayı değerine nasıl dönüştürüldüğü gösterilmektedir Int32.Parse(String) . Sonuçta elde edilen tamsayı değeri konsolda görüntülenir.
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
Açıklamalar
s
parametresi formun bir sayısını içerir:
[ws][sign]digits[ws]
Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.
Öğe | Açıklama |
---|---|
ws | İsteğe bağlı beyaz boşluk. |
sign | İsteğe bağlı bir işaret. |
rakamlar | 0 İle 9 arasında değişen bir basamak dizisi. |
s
parametresi stil kullanılarak NumberStyles.Integer yorumlanır. Ondalık basamakların yanı sıra, baştaki ve sondaki boşluklara önünde bir im ile birlikte izin verilir. içinde s
bulunabilecek stil öğelerini açıkça tanımlamak için veya Int32.Parse(String, NumberStyles, IFormatProvider) yöntemini kullanınInt32.Parse(String, NumberStyles).
s
parametresi, geçerli sistem kültürü için başlatılan bir NumberFormatInfo nesnedeki biçimlendirme bilgileri kullanılarak ayrıştırılır. Daha fazla bilgi için bkz. CurrentInfo. Başka bir kültürün biçimlendirme bilgilerini kullanarak bir dizeyi Int32.Parse(String, NumberStyles, IFormatProvider) ayrıştırmak için yöntemini kullanın.
Ayrıca bkz.
Şunlara uygulanır
Parse(ReadOnlySpan<Char>, IFormatProvider)
Bir karakter aralığını bir değere ayrıştırıyor.
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
Parametreler
- s
- ReadOnlySpan<Char>
Ayrıştırılacak karakterlerin yayılması.
- provider
- IFormatProvider
hakkında s
kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
Döndürülenler
ayrıştırma s
işleminin sonucu.
Uygulamalar
Şunlara uygulanır
Parse(ReadOnlySpan<Byte>, IFormatProvider)
UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor.
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
Parametreler
- utf8Text
- ReadOnlySpan<Byte>
Ayrıştırılacak UTF-8 karakter aralığı.
- provider
- IFormatProvider
hakkında utf8Text
kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
Döndürülenler
ayrıştırma utf8Text
işleminin sonucu.
Uygulamalar
Şunlara uygulanır
Parse(String, NumberStyles)
Belirtilen stildeki bir sayının dize gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür.
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
Parametreler
- s
- String
Dönüştürülecek sayıyı içeren bir dize.
- style
- NumberStyles
içinde bulunabilecek s
stil öğelerini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değerdir Integer.
Döndürülenler
içinde belirtilen s
sayıya eşdeğer 32 bit imzalı tamsayı.
Özel durumlar
s
, null
değeridir.
style
bir NumberStyles değer değildir.
-veya-
style
ve HexNumber değerlerinin AllowHexSpecifier birleşimi değildir.
s
ile style
uyumlu bir biçimde değil.
s
Int32.MinValue değerinden küçük veya Int32.MaxValue değerinden büyük bir sayıyı temsil eder.
-veya-
s
sıfır olmayan kesirli basamaklar içerir.
Örnekler
Aşağıdaki örnek, çeşitli Int32 değerlerin Int32.Parse(String, NumberStyles) dize gösterimlerini ayrıştırmak için yöntemini kullanır. Örneğin geçerli kültürü: 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.
Açıklamalar
style
parametresi, ayrıştırma işleminin başarılı olması için parametresinde s
izin verilen stil öğelerini (boşluk, pozitif veya negatif işaret simgesi veya binlik ayırıcı simgesi gibi) tanımlar. Sabit listesindeki bit bayraklarının NumberStyles bir bileşimi olmalıdır. değerine style
s
bağlı olarak parametresi aşağıdaki öğeleri içerebilir:
[ws][$][sign][digits,]digits[.fractional_digits][e[sign]exponential_digits][ws]
Veya içeriyorsa style
AllowHexSpecifier:
[ws]hexdigits[ws]
Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.
Öğe | Açıklama |
---|---|
Ws | İsteğe bağlı beyaz boşluk. Bayrağı içeriyorsa boşluk başında s style ve bayrağı içeriyorsa sonunda s style NumberStyles.AllowTrailingWhite görüntülenebilir.NumberStyles.AllowLeadingWhite |
$ | Kültüre özgü para birimi simgesi. Dizedeki konumu, geçerli kültürün NumberFormatInfo.CurrencyNegativePattern ve NumberFormatInfo.CurrencyPositivePattern özellikleri tarafından tanımlanır. Bayrağı içeriyorsa geçerli kültürün NumberStyles.AllowCurrencySymbol para birimi simgesi içinde s style görünebilir. |
sign | İsteğe bağlı bir işaret. İşaret, bayrağını içeriyorsa başında s style ve bayrağını içeriyorsa NumberStyles.AllowLeadingSignNumberStyles.AllowTrailingSign sonunda s style görüntülenebilir. Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirs . |
Basamak fractional_digits exponential_digits |
0 İle 9 arasında bir basamak dizisi. fractional_digits için yalnızca 0 rakamı geçerlidir. |
, | Kültüre özgü binler basamaklarını ayıran simge. Bayrağı içeriyorsa geçerli kültürün binlik ayırıcısı NumberStyles.AllowThousands içinde s style görünebilir. |
. | Bir kültüre özgü ondalık nokta sembolü. Bayrağı içeriyorsa geçerli kültürün NumberStyles.AllowDecimalPoint ondalık noktası simgesi içinde s style görünebilir. Ayrıştırma işleminin başarılı olması için kesirli basamak olarak yalnızca 0 rakamı görüntülenebilir; fractional_digits başka bir rakam içeriyorsa, bir OverflowException oluşturulur. |
E | Değerin üstel gösterimde temsil edildiğini gösteren 'e' veya 'E' karakteri. parametresi, s bayrağını içeriyorsa bir sayıyı üstel gösteriminde style NumberStyles.AllowExponent gösterebilir. |
hexdigits | 0 İle f veya 0 ile f arasında onaltılık basamak dizisi. |
Not
içindeki s
sonlandırıcı NUL (U+0000) karakterleri, bağımsız değişkenin değerinden style
bağımsız olarak ayrıştırma işlemi tarafından yoksayılır.
Yalnızca basamakları olan bir dize (stile NumberStyles.None karşılık gelir) türün aralığındaysa Int32 her zaman başarılı ayrıştırılır. Kalan NumberStyles üyelerin çoğu, giriş dizesinde bulunması gerekmeyen ancak gerekli olmayan öğeleri denetler. Aşağıdaki tabloda, tek tek NumberStyles üyelerin içinde s
bulunabilecek öğeleri nasıl etkilediği gösterilir.
NumberStyles değeri | Basamaklara olarak s bileşeninde izin verilen öğeler |
---|---|
None | Yalnızca digits öğesi. |
AllowDecimalPoint | Ondalık ayırıcı ( . ) ve kesirli basamaklar öğeleri. |
AllowExponent | parametresi üstel s gösterimi de kullanabilir. |
AllowLeadingWhite | başındaki s ws öğesi. |
AllowTrailingWhite | sonundaki s ws öğesi. |
AllowLeadingSign | başındaki s sign öğesi. |
AllowTrailingSign | sonundaki s sign öğesi. |
AllowParentheses | Sayısal değeri kapsayan parantez biçimindeki sign öğesi. |
AllowThousands | Binlik ayırıcısı ( , ) öğesi. |
AllowCurrencySymbol | $ öğesi. |
Currency | Tüm. s parametresi onaltılık bir sayıyı veya üstel gösterimi olan bir sayıyı temsil edemez. |
Float | başında veya sonundaki s ws öğesi, öğesinin s başında ve ondalık ayırıcı ( . ) simgesiyle işaret eder. parametresi üstel s gösterimi de kullanabilir. |
Number | ws , , sign binler ayırıcısı ( , ) ve ondalık ayırıcısı ( . ) öğeleri. |
Any | Dışındaki s tüm stiller onaltılık bir sayıyı temsil edemez. |
NumberStyles.AllowHexSpecifier Bayrağı kullanılıyorsa, s
ön ek olmadan onaltılık bir değer olmalıdır. Örneğin, "C9AF3" başarıyla ayrıştırılsa da "0xC9AF3" ayrıştırılmaz. parametresiyle s
birleştirilebilen diğer bayraklar yalnızca ve NumberStyles.AllowTrailingWhite'tirNumberStyles.AllowLeadingWhite. (Numaralandırma, NumberStylesNumberStyles.HexNumberher iki boşluk bayrağını da içeren bileşik bir sayı stili içerir.)
s
parametresi, geçerli sistem kültürü için başlatılan bir NumberFormatInfo nesnedeki biçimlendirme bilgileri kullanılarak ayrıştırılır. Biçimlendirme bilgileri ayrıştırma işlemi için kullanılan kültürü belirtmek için aşırı yüklemeyi çağırın Int32.Parse(String, NumberStyles, IFormatProvider) .
Ayrıca bkz.
Şunlara uygulanır
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin