Come convertire una stringa in un intero in PowerShell

  1. Usa [int] per Convertire Stringhe in Interi in PowerShell
  2. Usa [System.Int32] per Convertire Stringhe in Interi in PowerShell
  3. Definire il Tipo di Dato di una Variabile per Convertire Stringhe in Interi in PowerShell
  4. Conclusione
Come convertire una stringa in un intero in PowerShell

In PowerShell, sapere come convertire le stringhe in interi è una competenza preziosa. Questo tutorial ti insegnerà a convertire le stringhe in interi in PowerShell.

Esamineremo la tecnica di utilizzare [int] e [System.Int32] per eseguire questa conversione, permettendoti di modificare facilmente i tuoi dati.

Usa [int] per Convertire Stringhe in Interi in PowerShell

In PowerShell, possiamo usare [int] per convertire una stringa in un intero. Questo si chiama casting di tipo o conversione di tipo.

La seguente sintassi è una semplice dichiarazione di assegnazione in PowerShell, dove stiamo convertendo una stringa in un intero e assegnando il risultato alla variabile $integerVariable.

Sintassi:

$integerVariable = [int]$stringVariable

Parametri:

  • $integerVariable: Questa è una variabile che conterrà il valore intero dopo la conversione.
  • [int]: Questo viene utilizzato per il casting di tipo del valore di $stringVariable a un intero.
  • $stringVariable: Questa è un’altra variabile o espressione che contiene una stringa che vuoi convertire in un intero.

Consideriamo che abbiamo una variabile $a come mostrato di seguito.

$a = 123

Il tipo di dato di $a è un intero.

$a.GetType().Name

Output:

Int32

Ma quando racchiudiamo il valore con " ", il tipo di dato diventerà string.

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

Output:

String

Per convertire la stringa ($b = "123") in un intero, possiamo usare [int] come mostrato di seguito.

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

Nel codice sopra, iniziamo con la variabile $b. Il valore attuale e il tipo di dato di $b ci sono sconosciuti a questo punto, ma vogliamo assicurarci che venga trattato come un intero.

Successivamente, il $b -as [int], utilizziamo l’operatore -as per un casting di tipo sicuro. Questo tenta di convertire il valore di $b nel tipo specificato [int].

Se può essere convertito, il risultato viene assegnato di nuovo a $b. Altrimenti, $b rimane invariato.

Nella riga successiva, usiamo $b.GetType().Name per determinare il tipo di dato della variabile $b dopo l’operazione di casting di tipo.

Ora, vediamo cosa succede con una variabile $b che ha un valore e un tipo specifici:

  • Se $b inizialmente contiene un intero (ad esempio, $b = 42), il codice non cambierà il suo tipo, e l’output sarà Int32.

  • Se $b inizialmente contiene una stringa che può essere convertita con successo in un intero (ad esempio, $b = "123"), il codice cambierà il suo tipo in un intero, e l’output sarà Int32.

  • Se $b inizialmente contiene una stringa che non può essere convertita in un intero (ad esempio, $b = "hello"), il codice non cambierà il suo tipo, e l’output sarà il tipo del valore originale, che, in questo caso, è una stringa, quindi l’output sarà String.

Output:

Int32

Dato l’output Int32, implica che il valore iniziale della variabile $b (prima di questo frammento di codice) era o un intero o una stringa che poteva essere convertita con successo in un intero.

Usa [System.Int32] per Convertire Stringhe in Interi in PowerShell

Il [System.Int32] è una forma di casting di tipo che converte una stringa in un intero in PowerShell, che dice esplicitamente a PowerShell di trattare una variabile o espressione come un tipo di dato Int32.

Nella sintassi, convertiamo una stringa in $stringValue in un intero, memorizzando il risultato in $intValue. Questo viene fatto usando la sintassi [System.Int32] per specificare il tipo di dato desiderato, rendendo $stringValue pronto per operazioni numeriche.

Sintassi:

$intValue = [System.Int32]$stringValue

Nel codice, iniziamo impostando una variabile stringa chiamata $stringValue al valore "456". Poi, procediamo a convertire questa stringa in un intero usando [System.Int32] e memorizziamo il risultato in un’altra variabile, $intValue.

Dopo questa conversione, chiediamo il tipo di dato della variabile $intValue usando $intValue.GetType().Name.

Output:

Int32

L’output ci dice che la variabile $intValue contiene un intero, specificamente un intero a 32 bit, come indicato da Int32, che è il nome del tipo di dato.

Definire il Tipo di Dato di una Variabile per Convertire Stringhe in Interi in PowerShell

PowerShell può rilevare da solo il tipo di dato di una variabile.

Non dobbiamo essere specifici riguardo al tipo di dato e dichiarare una variabile. Ma possiamo definire il tipo di dato di una variabile prima di essa in modo da forzare il tipo di dato.

Facciamo un esempio.

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

Nel codice sopra, dichiariamo la variabile e la inizializziamo in questo modo: [int]$c = "456". Questa riga dice a PowerShell di fare esplicitamente il casting della stringa "456" in un intero, e il risultato viene quindi memorizzato nella variabile $c.

Successivamente, vogliamo sapere il tipo di dato della variabile $c, quindi usiamo $c.GetType().Name. Questo è il nostro modo per controllare se il casting di tipo è stato efficace.

Output:

Int32

L’output sopra è Int32, che indica che la stringa "456" è stata convertita in un intero. Ma, se provi a forzare un tipo di dato intero a un valore di stringa, riceverai un errore come nell’esempio di codice seguente.

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

Nel codice sopra, iniziamo dichiarando una variabile chiamata $data e assegnandole il valore di stringa "storage". La riga successiva, [int]$data, rappresenta un tentativo di forzare il casting della stringa "storage" in un tipo di dato intero.

Ora, controlleremo il tipo di dato della variabile $data usando $data.GetType().Name.

Output:

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

Proviamo a fare il casting come un intero usando [int]. Tuttavia, poiché la stringa "storage" non può essere convertita in un intero, PowerShell non cambia il tipo della variabile e restituisce un messaggio di errore "Il formato della stringa di input non era corretto.".

Conclusione

In questo articolo, abbiamo imparato a convertire stringhe in interi usando [int] e [System.Int32]. Ora possiamo facilmente passare da testo a numeri in PowerShell.

Controllando i tipi di variabili, ottieni precisione e versatilità nei tuoi script.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
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

Articolo correlato - PowerShell Convert