在我的脚本中,我正在处理二进制值,我需要在一个地方替换0-> 1和1-> 0.
示例:输入数字= 10101001输出数字= 01010110
我试过了$string =~ s/1/0/;,reverse function但是没有给我正确的输出.
有人可以帮我吗.
Mil*_*ler 10
使用tr:
my $str = '10101001';
$s =~ tr/01/10/;
print "$s\n";
Run Code Online (Sandbox Code Playgroud)
输出:
01010110
Run Code Online (Sandbox Code Playgroud)
如果您的输入字符串只有这两个可能性0和1,那么您可以在一个多阶段的方法使用替换:
$str =~ s/1/x/g; # all 1's to x
$str =~ s/0/1/g; # all 0's to 1
$str =~ s/x/0/g; # all x's to 0
Run Code Online (Sandbox Code Playgroud)
对于仅提供替换的语言来说,这不是一个糟糕的选择,但Perl也有一个原子翻译功能:
$str =~ tr/01/10/;
Run Code Online (Sandbox Code Playgroud)
它也可以正常工作(更好,真的,因为它的代码更少,可能更少的数据传递).
| 归档时间: |
|
| 查看次数: |
221 次 |
| 最近记录: |