Como Converter String para Inteiro no PowerShell

  1. Use [int] para Converter String em Inteiro no PowerShell
  2. Use [System.Int32] para Converter String em Inteiro no PowerShell
  3. Defina o Tipo de Dado de uma Variável para Converter String em Inteiro no PowerShell
  4. Conclusão
Como Converter String para Inteiro no PowerShell

No PowerShell, saber como converter strings em inteiros é uma habilidade valiosa. Este tutorial irá ensinar como converter strings em inteiros no PowerShell.

Vamos abordar a técnica de usar [int] e [System.Int32] para realizar essa conversão, permitindo que você modifique seus dados facilmente.

Use [int] para Converter String em Inteiro no PowerShell

No PowerShell, podemos usar [int] para converter uma string em um inteiro. Isso é chamado de type casting ou conversão de tipo.

A seguinte sintaxe é uma simples declaração de atribuição no PowerShell, onde estamos convertendo uma string em um inteiro e atribuindo o resultado à variável $integerVariable.

Sintaxe:

$integerVariable = [int]$stringVariable

Parâmetros:

  • $integerVariable: Esta é uma variável que irá armazenar o valor inteiro após a conversão.
  • [int]: Isso é usado para fazer o type casting do valor de $stringVariable para um inteiro.
  • $stringVariable: Esta é outra variável ou expressão contendo uma string que você deseja converter em um inteiro.

Vamos considerar que temos uma variável $a, conforme mostrado abaixo.

$a = 123

O tipo de dado de $a é um inteiro.

$a.GetType().Name

Saída:

Int32

Mas quando envolvemos o valor com " ", o tipo de dado se tornará string.

$b = "123"
$b.GetType().Name

Saída:

String

Para converter o tipo de dado da string ($b = "123") em um inteiro, podemos usar [int] como mostrado abaixo.

$b = $b -as [int]
$b.GetType().Name

No código acima, começamos com a variável $b. O valor atual e o tipo de dado de $b são desconhecidos para nós neste momento, mas queremos garantir que seja tratado como um inteiro.

Em seguida, no $b -as [int], usamos o operador -as para type casting seguro. Ele tenta converter o valor de $b para o tipo especificado [int].

Se puder ser convertido, o resultado é atribuído de volta a $b. Caso contrário, $b permanece inalterado.

Na próxima linha, usamos $b.GetType().Name para determinar o tipo de dado da variável $b após a operação de type casting.

Agora, vamos analisar o que acontece com uma variável $b tendo um valor e tipo específicos:

  • Se $b inicialmente contém um inteiro (por exemplo, $b = 42), o código não mudará seu tipo, e a saída será Int32.

  • Se $b inicialmente contém uma string que pode ser convertida com sucesso em um inteiro (por exemplo, $b = "123"), o código mudará seu tipo para um inteiro, e a saída será Int32.

  • Se $b inicialmente contém uma string que não pode ser convertida em um inteiro (por exemplo, $b = "hello"), o código não mudará seu tipo, e a saída será o tipo do valor original, que, neste caso, é uma string, então a saída seria String.

Saída:

Int32

Dada a saída Int32, isso implica que o valor inicial da variável $b (antes deste trecho de código) era um inteiro ou uma string que poderia ser convertida com sucesso em um inteiro.

Use [System.Int32] para Converter String em Inteiro no PowerShell

O [System.Int32] é uma forma de typecasting que converte uma string em um inteiro no PowerShell, que informa explicitamente ao PowerShell para tratar uma variável ou expressão como um tipo de dado Int32.

Na sintaxe, convertendo uma string em $stringValue em um inteiro, armazenamos o resultado em $intValue. Isso é feito usando a sintaxe [System.Int32] para especificar o tipo de dado desejado, tornando $stringValue pronto para operações numéricas.

Sintaxe:

$intValue = [System.Int32]$stringValue

No código, começamos definindo uma variável string chamada $stringValue com o valor "456". Em seguida, procedemos para converter essa string em um inteiro usando [System.Int32] e armazenar o resultado em outra variável, $intValue.

Após essa conversão, indagamos sobre o tipo de dado da variável $intValue usando $intValue.GetType().Name.

Saída:

Int32

A saída nos informa que a variável $intValue contém um inteiro, especificamente um inteiro de 32 bits, como indicado por Int32, que é o nome do tipo de dado.

Defina o Tipo de Dado de uma Variável para Converter String em Inteiro no PowerShell

O PowerShell pode detectar o tipo de dado de uma variável por conta própria.

Não precisamos ser específicos sobre o tipo de dado e declarar uma variável. Mas podemos definir o tipo de dado de uma variável antes dela para forçar o tipo de dado.

Vamos dar um exemplo.

[int]$c = "456"
$c.GetType().Name

No código acima, declaramos a variável e a inicializamos assim: [int]$c = "456". Esta linha informa ao PowerShell para fazer o type casting explícito da string "456" para um inteiro, e o resultado é então armazenado na variável $c.

Em seguida, queremos saber o tipo de dado da variável $c, então usamos $c.GetType().Name. Esta é a nossa maneira de verificar se o type casting foi bem-sucedido.

Saída:

Int32

A saída acima é Int32, indicando que a string "456" foi convertida em um inteiro. Mas, se você tentar forçar um tipo de dado inteiro para um valor de string, você verá um erro como no seguinte exemplo de código.

[int]$data = "storage"
$c.GetType().Name

No código acima, começamos declarando uma variável chamada $data e atribuindo a ela o valor string "storage". A próxima linha, [int]$data, representa uma tentativa de forçar o type casting da string "storage" para um tipo de dado inteiro.

Agora, vamos verificar o tipo de dado da variável $data usando $data.GetType().Name.

Saída:

Cannot convert value "storage" to type "System.Int32". Error: "Input string was not in a correct format."
At line:1 char:1
+ [int]$data = "storage"
+ ~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : MetadataError: (:) [], ArgumentTransformationMetadataException
    + FullyQualifiedErrorId : RuntimeException

Tentamos fazer o casting como um inteiro usando [int]. No entanto, como a string "storage" não pode ser convertida em um inteiro, o PowerShell não muda o tipo da variável e retorna uma mensagem de erro "Input string was not in a correct format.".

Conclusão

Neste artigo, aprendemos a converter strings em inteiros usando [int] e [System.Int32]. Agora, podemos facilmente fazer a transição entre texto e números no PowerShell.

Controlando os tipos de variável, você ganha precisão e versatilidade em seus scripts.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Artigo relacionado - PowerShell Convert