Int32.Parse Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Convierte la representación de cadena de un número en su entero de 32 bits con signo equivalente.
Sobrecargas
Parse(String) |
Convierte la representación de cadena de un número en su entero de 32 bits con signo equivalente. |
Parse(ReadOnlySpan<Byte>, IFormatProvider) |
Analiza un intervalo de caracteres UTF-8 en un valor. |
Parse(ReadOnlySpan<Char>, IFormatProvider) |
Analiza un intervalo de caracteres en un valor. |
Parse(String, NumberStyles) |
Convierte la representación de cadena de un número en un estilo especificado en su entero de 32 bits con signo equivalente. |
Parse(String, IFormatProvider) |
Convierte la representación de cadena de un número en un formato específico de la referencia cultural especificado en su entero de 32 bits con signo equivalente. |
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider) |
Analiza un intervalo de caracteres UTF-8 en un valor. |
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
Convierte la representación de intervalo de un número en un estilo y formato específico de la referencia cultural especificados en su entero de 32 bits con signo equivalente. |
Parse(String, NumberStyles, IFormatProvider) |
Convierte la representación de cadena de un número en un estilo y formato específico de la referencia cultural especificados en su entero de 32 bits con signo equivalente. |
Parse(String)
- Source:
- Int32.cs
- Source:
- Int32.cs
- Source:
- Int32.cs
Convierte la representación de cadena de un número en su entero de 32 bits con signo equivalente.
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
Parámetros
- s
- String
Cadena que contiene un número que se va a convertir.
Devoluciones
Entero de 32 bits con signo equivalente al número contenido en s
.
Excepciones
s
es null
.
s
no tiene el formato correcto.
s
representa un número menor que int32.MinValue o mayor que Int32.MaxValue.
Ejemplos
En el ejemplo siguiente se muestra cómo convertir un valor de cadena en un valor entero con signo de 32 bits mediante el método Int32.Parse(String). A continuación, se muestra el valor entero resultante en la consola.
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
Comentarios
El parámetro s
contiene un número del formulario:
[ws] [sign]digits[ws]
Los elementos entre corchetes ([ y ]) son opcionales. En la tabla siguiente se describe cada elemento.
Elemento | Descripción |
---|---|
Ws | Espacio en blanco opcional. |
firmar | Un signo opcional. |
Dígitos | Secuencia de dígitos que van de 0 a 9. |
El parámetro s
se interpreta mediante el estilo NumberStyles.Integer. Además de los dígitos decimales, solo se permiten espacios iniciales y finales junto con un signo inicial. Para definir explícitamente los elementos de estilo que pueden estar presentes en s
, use el Int32.Parse(String, NumberStyles) o el método Int32.Parse(String, NumberStyles, IFormatProvider).
El parámetro s
se analiza mediante la información de formato de un objeto NumberFormatInfo inicializado para la referencia cultural del sistema actual. Para obtener más información, consulte CurrentInfo. Para analizar una cadena mediante la información de formato de alguna otra referencia cultural, use el método Int32.Parse(String, NumberStyles, IFormatProvider).
Consulte también
Se aplica a
Parse(ReadOnlySpan<Byte>, IFormatProvider)
- Source:
- Int32.cs
- Source:
- Int32.cs
Analiza un intervalo de caracteres UTF-8 en un valor.
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
Parámetros
- utf8Text
- ReadOnlySpan<Byte>
Intervalo de caracteres UTF-8 que se van a analizar.
- provider
- IFormatProvider
Objeto que proporciona información de formato específica de la referencia cultural sobre utf8Text
.
Devoluciones
Resultado del análisis utf8Text
.
Implementaciones
Se aplica a
Parse(ReadOnlySpan<Char>, IFormatProvider)
- Source:
- Int32.cs
- Source:
- Int32.cs
- Source:
- Int32.cs
Analiza un intervalo de caracteres en un valor.
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
Parámetros
- s
- ReadOnlySpan<Char>
Intervalo de caracteres que se va a analizar.
- provider
- IFormatProvider
Objeto que proporciona información de formato específica de la referencia cultural sobre s
.
Devoluciones
Resultado del análisis s
.
Implementaciones
Se aplica a
Parse(String, NumberStyles)
- Source:
- Int32.cs
- Source:
- Int32.cs
- Source:
- Int32.cs
Convierte la representación de cadena de un número en un estilo especificado en su entero de 32 bits con signo equivalente.
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
Parámetros
- s
- String
Cadena que contiene un número que se va a convertir.
- style
- NumberStyles
Combinación bit a bit de los valores de enumeración que indica los elementos de estilo que pueden estar presentes en s
. Un valor típico que se debe especificar es Integer.
Devoluciones
Entero de 32 bits con signo equivalente al número especificado en s
.
Excepciones
s
es null
.
style
no es un valor NumberStyles.
-o-
style
no es una combinación de valores AllowHexSpecifier y HexNumber.
s
no está en un formato compatible con style
.
s
representa un número menor que int32.MinValue o mayor que Int32.MaxValue.
-o-
s
incluye dígitos fraccionarios distintos de cero.
Ejemplos
En el ejemplo siguiente se usa el método Int32.Parse(String, NumberStyles) para analizar las representaciones de cadena de varios valores de Int32. La referencia cultural actual del ejemplo es 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.
Comentarios
El parámetro style
define los elementos de estilo (como espacios en blanco, el símbolo de signo positivo o negativo o el símbolo de separador de miles) que se permiten en el parámetro s
para que la operación de análisis se realice correctamente. Debe ser una combinación de marcas de bits de la enumeración NumberStyles. Según el valor de style
, el parámetro s
puede incluir los siguientes elementos:
[ws] [$] [sign] [digits,]digits[.fractional_digits][e[sign]exponential_digits][ws]
O bien, si style
incluye AllowHexSpecifier:
[ws]hexdigits[ws]
Los elementos entre corchetes ([ y ]) son opcionales. En la tabla siguiente se describe cada elemento.
Elemento | Descripción |
---|---|
ws | Espacio en blanco opcional. El espacio en blanco puede aparecer al principio de s si style incluye la marca NumberStyles.AllowLeadingWhite y puede aparecer al final de s si style incluye la marca NumberStyles.AllowTrailingWhite. |
$ | Símbolo de moneda específico de la referencia cultural. Su posición en la cadena se define mediante las propiedades NumberFormatInfo.CurrencyNegativePattern y NumberFormatInfo.CurrencyPositivePattern de la referencia cultural actual. El símbolo de moneda de la referencia cultural actual puede aparecer en s si style incluye la marca NumberStyles.AllowCurrencySymbol. |
de signo | Un signo opcional. El signo puede aparecer al principio de s si style incluye la marca NumberStyles.AllowLeadingSign y puede aparecer al final de s si style incluye la marca NumberStyles.AllowTrailingSign. Los paréntesis se pueden usar en s para indicar un valor negativo si style incluye la marca NumberStyles.AllowParentheses. |
de dígitos de fractional_digits exponential_digits |
Secuencia de dígitos de 0 a 9. Para fractional_digits, solo el dígito 0 es válido. |
, | Símbolo separador de miles específico de la referencia cultural. El separador de miles de la referencia cultural actual puede aparecer en s si style incluye la marca NumberStyles.AllowThousands. |
. | Símbolo de separador decimal específico de la referencia cultural. El símbolo de separador decimal de la referencia cultural actual puede aparecer en s si style incluye la marca NumberStyles.AllowDecimalPoint. Solo el dígito 0 puede aparecer como un dígito fraccionario para que la operación de análisis se realice correctamente; si fractional_digits incluye cualquier otro dígito, se produce un OverflowException. |
e | El carácter "e" o "E", que indica que el valor se representa en notación exponencial. El parámetro s puede representar un número en notación exponencial si style incluye la marca NumberStyles.AllowExponent. |
hexadecimas | Secuencia de dígitos hexadecimales de 0 a f o 0 a F. |
Nota
La operación de análisis omite los caracteres NUL (U+0000) de s
, independientemente del valor del argumento style
.
Una cadena solo con dígitos (que corresponde al estilo NumberStyles.None) siempre analiza correctamente si está en el intervalo del tipo Int32. La mayoría de los miembros de NumberStyles restantes controlan los elementos que pueden ser, pero no deben estar presentes en la cadena de entrada. En la tabla siguiente se indica cómo afectan los miembros de NumberStyles individuales a los elementos que pueden estar presentes en s
.
Valor numberStyles | Elementos permitidos en s además de dígitos |
---|---|
None | Los dígitos solo elemento. |
AllowDecimalPoint | El separador decimal ( . ) y fracciones de dígitos elementos. |
AllowExponent | El parámetro s también puede usar la notación exponencial. |
AllowLeadingWhite | Elemento ws al principio de s . |
AllowTrailingWhite | Elemento ws al final de s . |
AllowLeadingSign | Elemento de signo |
AllowTrailingSign | Elemento |
AllowParentheses | El signo elemento en forma de paréntesis que incluye el valor numérico. |
AllowThousands | Separador de miles ( , ) elemento . |
AllowCurrencySymbol | Elemento $. |
Currency | Todo. El parámetro s no puede representar un número hexadecimal o un número en notación exponencial. |
Float | El elemento ws al principio o al final de s , signo al principio de s y el símbolo decimal ( . ). El parámetro s también puede usar la notación exponencial. |
Number | Los elementos ws , sign , separador de miles ( , ) y separador decimal ( . ). |
Any | Todos los estilos, excepto s no pueden representar un número hexadecimal. |
Si se usa la marca NumberStyles.AllowHexSpecifier, s
debe ser un valor hexadecimal sin prefijo. Por ejemplo, "C9AF3" analiza correctamente, pero "0xC9AF3" no. Las únicas marcas que se pueden combinar con el parámetro s
son NumberStyles.AllowLeadingWhite y NumberStyles.AllowTrailingWhite. (La enumeración NumberStyles incluye un estilo de número compuesto, NumberStyles.HexNumber, que incluye ambas marcas de espacio en blanco).
El parámetro s
se analiza mediante la información de formato de un objeto NumberFormatInfo que se inicializa para la referencia cultural del sistema actual. Para especificar la referencia cultural cuya información de formato se usa para la operación de análisis, llame a la sobrecarga de Int32.Parse(String, NumberStyles, IFormatProvider).
Consulte también
Se aplica a
Parse(String, IFormatProvider)
- Source:
- Int32.cs
- Source:
- Int32.cs
- Source:
- Int32.cs
Convierte la representación de cadena de un número en un formato específico de la referencia cultural especificado en su entero de 32 bits con signo equivalente.
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
Parámetros
- s
- String
Cadena que contiene un número que se va a convertir.
- provider
- IFormatProvider
Objeto que proporciona información de formato específica de la referencia cultural sobre s
.
Devoluciones
Entero de 32 bits con signo equivalente al número especificado en s
.
Implementaciones
Excepciones
s
es null
.
s
no tiene el formato correcto.
s
representa un número menor que int32.MinValue o mayor que Int32.MaxValue.
Ejemplos
El ejemplo siguiente es el controlador de eventos click de botón de un formulario web. Usa la matriz devuelta por la propiedad HttpRequest.UserLanguages para determinar la configuración regional del usuario. A continuación, crea una instancia de un objeto CultureInfo que corresponde a esa configuración regional. A continuación, el objeto NumberFormatInfo que pertenece a ese objeto CultureInfo se pasa al método Parse(String, IFormatProvider) para convertir la entrada del usuario en un valor de 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
Comentarios
Esta sobrecarga del método Parse(String, IFormatProvider) se usa normalmente para convertir texto que se puede dar formato de varias maneras a un valor Int32. Por ejemplo, se puede usar para convertir el texto escrito por un usuario en un cuadro de texto HTML a un valor numérico.
El parámetro s
contiene un número del formulario:
[ws] [sign]digits[ws]
Los elementos entre corchetes ([ y ]) son opcionales. En la tabla siguiente se describe cada elemento.
Elemento | Descripción |
---|---|
ws | Espacio en blanco opcional. |
de signo | Un signo opcional. |
de dígitos de |
Secuencia de dígitos que van de 0 a 9. |
El parámetro s
se interpreta mediante el estilo NumberStyles.Integer. Además de los dígitos decimales, solo se permiten espacios iniciales y finales junto con un signo inicial. Para definir explícitamente los elementos de estilo que pueden estar presentes en s
, use el método Int32.Parse(String, NumberStyles, IFormatProvider).
El parámetro provider
es una implementación de IFormatProvider, como un objeto NumberFormatInfo o CultureInfo. El parámetro provider
proporciona información específica de la referencia cultural sobre el formato de s
. Si provider
es null
, se usa el objeto NumberFormatInfo para la referencia cultural actual.
Consulte también
Se aplica a
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)
- Source:
- Int32.cs
- Source:
- Int32.cs
Analiza un intervalo de caracteres UTF-8 en un valor.
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
Parámetros
- utf8Text
- ReadOnlySpan<Byte>
Intervalo de caracteres UTF-8 que se van a analizar.
- style
- NumberStyles
Combinación bit a bit de estilos de número que pueden estar presentes en utf8Text
.
- provider
- IFormatProvider
Objeto que proporciona información de formato específica de la referencia cultural sobre utf8Text
.
Devoluciones
Resultado del análisis utf8Text
.
Implementaciones
Se aplica a
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
- Source:
- Int32.cs
- Source:
- Int32.cs
- Source:
- Int32.cs
Convierte la representación de intervalo de un número en un estilo y formato específico de la referencia cultural especificados en su entero de 32 bits con signo equivalente.
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
Parámetros
- s
- ReadOnlySpan<Char>
Intervalo que contiene los caracteres que representan el número que se va a convertir.
- style
- NumberStyles
Combinación bit a bit de valores de enumeración que indica los elementos de estilo que pueden estar presentes en s
. Un valor típico que se debe especificar es Integer.
- provider
- IFormatProvider
Objeto que proporciona información específica de la referencia cultural sobre el formato de s
.
Devoluciones
Entero de 32 bits con signo equivalente al número especificado en s
.
Implementaciones
Se aplica a
Parse(String, NumberStyles, IFormatProvider)
- Source:
- Int32.cs
- Source:
- Int32.cs
- Source:
- Int32.cs
Convierte la representación de cadena de un número en un estilo y formato específico de la referencia cultural especificados en su entero de 32 bits con signo equivalente.
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
Parámetros
- s
- String
Cadena que contiene un número que se va a convertir.
- style
- NumberStyles
Combinación bit a bit de valores de enumeración que indica los elementos de estilo que pueden estar presentes en s
. Un valor típico que se debe especificar es Integer.
- provider
- IFormatProvider
Objeto que proporciona información específica de la referencia cultural sobre el formato de s
.
Devoluciones
Entero de 32 bits con signo equivalente al número especificado en s
.
Implementaciones
Excepciones
s
es null
.
style
no es un valor NumberStyles.
-o-
style
no es una combinación de valores AllowHexSpecifier y HexNumber.
s
no está en un formato compatible con style
.
s
representa un número menor que int32.MinValue o mayor que Int32.MaxValue.
-o-
s
incluye dígitos fraccionarios distintos de cero.
Ejemplos
En el ejemplo siguiente se usa una variedad de parámetros style
y provider
para analizar las representaciones de cadena de Int32 valores. También ilustra algunas de las distintas formas en que se puede interpretar la misma cadena en función de la referencia cultural cuya información de formato se use para la operación de análisis.
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.
Comentarios
El parámetro style
define los elementos de estilo (como el espacio en blanco o el signo positivo) que se permiten en el parámetro s
para que la operación de análisis se realice correctamente. Debe ser una combinación de marcas de bits de la enumeración NumberStyles. Según el valor de style
, el parámetro s
puede incluir los siguientes elementos:
[ws] [$] [sign] [digits,]digits[.fractional_digist][e[sign]exponential_digits][ws]
O bien, si style
incluye AllowHexSpecifier:
[ws]hexdigits[ws]
Los elementos entre corchetes ([ y ]) son opcionales. En la tabla siguiente se describe cada elemento.
Elemento | Descripción |
---|---|
ws | Espacio en blanco opcional. El espacio en blanco puede aparecer al principio de s si style incluye la marca NumberStyles.AllowLeadingWhite y puede aparecer al final de s si style incluye la marca NumberStyles.AllowTrailingWhite. |
$ | Símbolo de moneda específico de la referencia cultural. Su posición en la cadena se define mediante la propiedad NumberFormatInfo.CurrencyPositivePattern del objeto NumberFormatInfo devuelto por el método GetFormat del parámetro provider . El símbolo de moneda puede aparecer en s si style incluye la marca NumberStyles.AllowCurrencySymbol. |
de signo | Un signo opcional. El signo puede aparecer al principio de s si style incluye la marca NumberStyles.AllowLeadingSign o al final de s si style incluye la marca NumberStyles.AllowTrailingSign. Los paréntesis se pueden usar en s para indicar un valor negativo si style incluye la marca NumberStyles.AllowParentheses. |
de dígitos de fractional_digits exponential_digits |
Secuencia de dígitos de 0 a 9. Para fractional_digits, solo el dígito 0 es válido. |
, | Símbolo separador de miles específico de la referencia cultural. El separador de miles de la referencia cultural especificada por provider puede aparecer en s si style incluye la marca NumberStyles.AllowThousands. |
. | Símbolo de separador decimal específico de la referencia cultural. El símbolo decimal de la referencia cultural especificada por provider puede aparecer en s si style incluye la marca NumberStyles.AllowDecimalPoint.Solo el dígito 0 puede aparecer como un dígito fraccionario para que la operación de análisis se realice correctamente; si fractional_digits incluye cualquier otro dígito, se produce un OverflowException. |
e | El carácter "e" o "E", que indica que el valor se representa en notación exponencial. El parámetro s puede representar un número en notación exponencial si style incluye la marca NumberStyles.AllowExponent. |
hexadecimas | Secuencia de dígitos hexadecimales de 0 a f o 0 a F. |
Nota
La operación de análisis omite los caracteres NUL (U+0000) de s
, independientemente del valor del argumento style
.
Una cadena con dígitos decimales solo (que corresponde al estilo NumberStyles.None) siempre analiza correctamente si está en el intervalo del tipo Int32. La mayoría de los miembros de NumberStyles restantes controlan los elementos de control que pueden estar presentes, pero no deben estar presentes en esta cadena de entrada. En la tabla siguiente se indica cómo afectan los miembros de NumberStyles individuales a los elementos que pueden estar presentes en s
.
Valores de NumberStyles no compuestos | Elementos permitidos en s además de dígitos |
---|---|
NumberStyles.None | Solo dígitos decimales. |
NumberStyles.AllowDecimalPoint | El separador decimal ( . ) y fracciones de dígitos elementos. Sin embargo, fracciones deben constar de solo uno o más 0 dígitos o se produce un OverflowException. |
NumberStyles.AllowExponent | El parámetro s también puede usar la notación exponencial. Si s representa un número en notación exponencial, debe representar un entero dentro del intervalo del tipo de datos Int32 sin un componente fraccionario distinto de cero. |
NumberStyles.AllowLeadingWhite | Elemento ws al principio de s . |
NumberStyles.AllowTrailingWhite | Elemento ws al final de s . |
NumberStyles.AllowLeadingSign | Un signo positivo puede aparecer antes de dígitos. |
NumberStyles.AllowTrailingSign | Un signo positivo puede aparecer después de dígitos. |
NumberStyles.AllowParentheses | El signo elemento en forma de paréntesis que incluye el valor numérico. |
NumberStyles.AllowThousands | Separador de miles ( , ) elemento . |
NumberStyles.AllowCurrencySymbol | Elemento $. |
Si se usa la marca NumberStyles.AllowHexSpecifier, s
debe ser un valor hexadecimal sin prefijo. Por ejemplo, "C9AF3" analiza correctamente, pero "0xC9AF3" no. Las únicas marcas que pueden estar presentes en style
son NumberStyles.AllowLeadingWhite y NumberStyles.AllowTrailingWhite. (La enumeración NumberStyles tiene un estilo de número compuesto, NumberStyles.HexNumber, que incluye ambas marcas de espacio en blanco).
El parámetro provider
es una implementación de IFormatProvider, como un objeto NumberFormatInfo o CultureInfo. El parámetro provider
proporciona información específica de la referencia cultural que se usa en el análisis. Si provider
es null
, se usa el objeto NumberFormatInfo para la referencia cultural actual.