Domanda

Devo avere una stringa, basata su un numero intero, che dovrebbe sempre avere 5 cifre.

Esempio:

myInteger = 999
formatedInteger = "00999"

Qual è il modo migliore per farlo nel classico ASP?

È stato utile?

Soluzione

Puoi usare le funzioni di manipolazione delle stringhe per questo.

Questo presuppone il classico ASP con VBScript (versione originale della risposta).

Const NUMBER_DIGITS = 5

Dim myInteger
Dim formatedInteger

myInteger = 999
formatedInteger = Right(String(NUMBER_DIGITS, "0") & myInteger, NUMBER_DIGITS)

Qui una versione ottimizzata, racchiusa in una funzione, che offre imbottitura a larghezza variabile:

Const NUMBER_PADDING = "000000000000" ' a few zeroes more just to make sure

Function ZeroPadInteger(i, numberOfDigits)
  ZeroPadInteger = Right(NUMBER_PADDING & i, numberOfDigits)
End Function

' Call in code:

strNumber = ZeroPadInteger(myInteger, 5)

Altri suggerimenti

Qualcosa del genere è ciò che ho visto il più delle volte:

function PadNumber(number, width)
   dim padded : padded = cStr(number)

   while (len(padded) < width)
       padded = "0" & padded
   wend

   PadNumber = padded
end function

PadNumber(999, 5) '00999

Prova questo per un one-liner (bene, due con prevenzione degli errori):

function padZeroDigits(sVariable, iLength)
    if (iLength <= len(sVariable)) then padZeroDigits = sVariable : exit function : end if
    padZeroDigits = string(iLength - len(sVariable),"0") & sVariable
end function

Davvero, dovresti chiederti perché potresti volerlo.

Se questo è per scopi di visualizzazione, probabilmente è meglio applicare una funzione di formattazione delle stringhe (ce ne sarà una) al tuo numero intero, nel punto di visualizzazione.

D'altra parte, se ne hai bisogno per l'elaborazione interna, ovvero ti aspetti sempre cinque cifre in un ciclo o altro, ma non ti aspetti di fare l'aritmetica sul valore, quindi converti l'intero in una stringa prima e poi fare qualsiasi elaborazione.

In breve, converti la variabile intera in una stringa e archivia in una nuova variabile, quindi usala.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top