在Perl中打印时,我想格式化(截断/附加字符)指定长度的字符串。
例如
$string='my_string';
printf("%04s",$string);应打印
my_s另外,如果
$string='my';我应该得到
00my有没有办法打印最后四个字符?
ring如果字符串是
$string='my';它应该会打印出来
00my发布于 2011-06-23 04:16:44
您希望使用此格式字符串,而不是您的格式字符串:
printf ("%04.4s", $string);您需要.4,因为它指定了最大长度。(开头的4仅指定最小值)
以下是一些测试的输出:
$ perl -e "my \$string = \"my_string\";print sprintf(\"%04.4s\", 22);"
0022
$ perl -e "my \$string = \"my_string\";print sprintf(\"%04.4s\", \$string);"
my_s
$ perl -e "my \$string = \"my\";print sprintf(\"%04s\", \$string);"
00my以下是使用错误格式字符串的输出。正如您所看到的,字符串不会被截断。
$ perl -e "my \$string = \"my_string\";print sprintf(\"%04s\", 22);"
0022
$ perl -e "my \$string = \"my_string\";print sprintf(\"%04s\", \$string);"
my_string发布于 2011-06-23 04:11:22
printf('%04s', substr($_, 0, 4));https://stackoverflow.com/questions/6445768
复制相似问题