Alguns argumentam que a programação é uma arte e, em última instância, só posso concordar, especialmente quando você desenterrar soluções muito diferentes para o mesmo problema. Para entender como isso é verdade como uma necessidade idêntica em medisimo língua (JavaScript) podem ser resolvidos com abordagens muito diferentes e originais.
Pad de zero à esquerda
. Um número, mas a discussão é também válida para qualquer cadeia, tais como 123 pode ser enchido para a esquerda - para arejar - com um certo número de zeros, por exemplo: 00123 . Esta necessidade tem em várias ocasiões e é útil para colocar em uma coluna - ou pelo menos show - um número em uma maneira limpa, implicitamente, indicando o seu valor máximo. . Em jogos de vídeo, por exemplo, a pontuação clássica (a pontuação) é muitas vezes referida 001234 , indicando que, no máximo, chegaremos a 999999 . Veja como o mesmo problema foi resolvido por vários desenvolvedores:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | / ** * Cordas Pad Esquerda * * @ De http://snipplr.com/view/8423/left-pad-string/ * @ Autor web-http :/ / www.mechanicmatt.com/ * * Num Param @ - Striga para preencher * Os totalChars @ Param - Número total de caracteres, incluindo os "zeros" * @ Param padWidth - Personagem usado para preencher, o padrão "0" * / num , totalChars , padWith ) { leadingZeros função (num, totalChars, padWith) { "" ; Num = num + ""; padWith ) ? padWith : "0" ; ? padWith = (padWith) padWith: "0"; num. length < totalChars ) { se (comprimento No. <totalChars) { num. length < totalChars ) { while (comprimento No. <totalChars) { num ; num = Num + padWith; } { } Else {}} num. length > totalChars ) { //if padWith was a multiple character string and num was overpadded if (no. comprimento> totalChars) {/ / se foi padWith seqüência de caracteres múltipla e num foi overpadded ( ( num. length - totalChars ) , totalChars ) ; num = núm substring ((comprimento n º - totalChars), totalChars).; { } Else {}} retornar num; } leadingZeros ( "asdf" , 10 , "0" ) ) ; alert (leadingZeros ("asdf", 10, "0")); |
scegliendo anche il tipo di carattere da usare tramite padWidth , invece del default 0 . Esta solução é extremamente articular, ainda permite que você adicione qualquer número de 0 ao número num escolher o tipo de fonte usada pelo padWidth , ao invés do padrão 0 .
Decididamente original, no entanto, essa solução:
1 2 3 4 5 6 7 8 9 10 11 12 13 | / ** * String_pad * * @ De http://snipplr.com/view/700/stringpad/ * Autor @ http://d.hatena.ne.jp/brazil/20060721/1153489937 * * @ Param str - Striga para preencher * @ Param len - Número de caracteres, incluindo os "zeros" * @ Param ch - caractere usado para preencher * / str , len , ch ) { return new Array ( len - ( '' + str ) . length + 1 ) . join ( ch ) + str } pad função (str, len, ch) {return new Array (len -. (str +'' comprimento) + 1). join (ch) str +} pad ( 56 , 4 , '0' ) ) ; // 0056 alert (almofada (56, 4, '0 ')); / / 0056 |
Mesmo resultado, com uma abordagem completamente diferente. . Mais uma vez temos a oportunidade de decidir o número de caracteres de preenchimento usando parâmetro len , ea fonte a ser usada com ch . Ausente é o uso de padrão fornecida na função acima.
O que eu uso, mas ...:
1 2 3 4 5 6 7 8 9 10 11 12 | / ** * String_pad * * @ Autor Giovambattista Fazioli * @ Web http://www.undolog.com * * @ Param s - Striga para preencher * @ Param s - a cadeia de caracteres que indica que ou o comprimento * Por exemplo, "0000" = "0" comprimento de caractere 4 * / s , l ) { return ( l. substr ( 0 , ( l. length - s. length ) ) + s ) ; } estofo função (s, l) {retorno (l. substr (0, (comprimento L. - s comprimento)) + s.);} padding ( '123' , '0000' ) ) ; alert (padding ('123 ', '0000')); |
Se você tem outras soluções interessantes, não hesite em comentar ![]()






Últimos Comentários
Assunto : muito útil mesmo! Eu tentei isso e é exatamente o que eu precisava. Agora eu quero saber como faço para obter ...
vik : Com a ajuda estratégica!
Pimenta : Olá, eu não sei se você é um dos criadores do plugin WP Bannerize. Tenho visto um ...
Rosanna : Alguém pode me dizer como faço para excluir o Snap Shots janela que se abre automaticamente quando eu ...
bendito Maresca : Eu não posso fazer download de qualquer skypemote me spiegaaa