数字を文字に変換するPerlモジュールがありますか?インスタンスようになど数字を文字表記に変換するためのモジュール
1 = A
2 = B
3 = C
...
27 = AA
28 = AB
29 = AC
...
53 = BA
54 = BB
55 = BC
については
。
数字を文字に変換するPerlモジュールがありますか?インスタンスようになど数字を文字表記に変換するためのモジュール
1 = A
2 = B
3 = C
...
27 = AA
28 = AB
29 = AC
...
53 = BA
54 = BB
55 = BC
については
。
をこのコードは何が必要ない機能a2n
を示し
出力
A = 1
B = 2
C = 3
AA = 27
AB = 28
AC = 29
BA = 53
BB = 54
BC = 55
対応n2a
この
sub n2a {
my ($n) = @_;
my @a;
while ($n > 0) {
unshift @a, ($n-1) % 26;
$n = int(($n-1)/26); #Edited for failing corner case
}
join '', map chr(ord('A') + $_), @a;
}
本当にモジュールが必要ですか?
my $n = 55;
my $s = 'A';
$s++ while --$n;
print "$s\n";
..
オペレータではかわいいトリックがあります。試してみてください:
print join ",",("A".."ZZ"),"\n"
または
my @a = ("A".."ZZ");
print $a[56],"\n";
あなたがが、要素の数千人の数百に上るとしている場合、これは本当に良い方法ではありません。それで、あなたは自分自身で基数26の数学(非常に簡単な数学)をするのが良いです。
まあ、Perlはあなたのニーズに合うかもしれない、範囲内の文字を扱うことができます。
my @letters = 'A' .. 'BC'; # A B C ... Z AA AB AC etc.
その後、あなたは、単に行うことができます。
my $letter = $letter[$foo - 1]; # 1 -> A, 2 -> B ...
のように見えますが、あなたは、 '$-S-しばらく行った場合、これは壊れる - $ N 'を。 '-1'(いくらかの負の数)で終わるでしょうか? – chrsblck
@chrsblck自動減算演算子は魔法ではなく、増分演算子だけです。これはperldoc perlopに書かれています。 – TLP
@TLP正確に私の意見。 – chrsblck