作者cutecpu (可爱中央处理器)
看板Perl
标题Re: [问题] 如何取出字串中的数字并加以运算
时间Mon Jan 30 11:27:51 2012
※ 引述《saka12 (saka)》之铭言:
: 大家好,我式perl的新手
: 请问如果从<STDIN>输入任意数字或字母,
: 在不使用"阵列"跟"正规表示法"的前提下,
: 怎麽只取数字,并运行基本的运算
: 例如:
: 使用者输入: 1 12 3 a 24 e 5
: 萤幕显示: 1+12+3+24+5=45
: 我本来用substr来取单一字元,可是这样12会被拆成1跟2,
: 我卡这里很久了,实在想不出来,所以请大家帮帮忙
: 谢谢D
以下是土法炼钢法,没有用到阵列跟正规表示式唷:
#!/usr/bin/perl -w
$partialSum = $sum = 0;
$expr = <STDIN>;
for(split('',$expr)){
if($_ ge '0' and $_ le '9'){
$partialSum = 10 * $partialSum + $_;
$digit = 1;
}
elsif($digit){
$exp .= "$partialSum+";
$sum += $partialSum;
$partialSum = $digit = 0;
}
}
chop($exp);
print "$exp=$sum\n";
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.59.164.109
1F:推 saka12:真的太谢谢你了,我已经想了好几天了,可以请问你为甚麽 01/30 15:05
2F:→ saka12:$partialSum = $digit = 0;吗? 01/30 15:06
3F:推 xatier:初始化阿XD 01/30 16:07
4F:推 abliou:前辈 您使用到split的时候 严格来讲就用到阵列了喔 XDD 01/31 01:50
5F:→ cutecpu:啊,对吼XD...(失败) 01/31 10:30