Perl 打印格式

发布于 2024-11-16 20:35:46 字数 421 浏览 1 评论 0原文

我想在 Perl 中打印时将字符串格式化(截断/附加字符)为指定长度。

例如,

$string='my_string';
printf("%04s",$string);

也应该打印

my_s

如果

$string='my';

我应该得到

00my

有没有办法打印最后四个字符,

ring

?如果字符串是

$string='my';

它应该打印

00my

I would like to format(truncate/append with chars) a string to a specified length while printing in Perl.

For example

$string='my_string';
printf("%04s",$string);

should print

my_s

also if

$string='my';

I should get

00my

Is there any way to print last four characters ?

ring

and if string is

$string='my';

it should print

00my

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

滥情哥ㄟ 2024-11-23 20:35:46

您想要执行此格式字符串而不是您的格式字符串:

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

You want to do this format string instead of yours:

printf ("%04.4s", $string);

You need the .4 because this specifies maximum length. (The 4 at the beginning specifies a minimum only)

here are the output of some tests:

$ 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

Here is the output using the wrong format string. As you can see strings are not truncated.

$ perl -e "my \$string = \"my_string\";print sprintf(\"%04s\", 22);"
0022
$ perl -e "my \$string = \"my_string\";print sprintf(\"%04s\", \$string);"
my_string
错爱 2024-11-23 20:35:46
printf('%04s', substr($_, 0, 4));
printf('%04s', substr($_, 0, 4));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文