Artigos com a tag 'estofo'

Variedade de codificação e de codificação

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 : D

Leia mais ...


Pare SOPA