Re: [問題] 如何取出字串中的數字並加以運算

看板Perl作者 (可愛中央處理器)時間13年前 (2012/01/30 11:27), 編輯推噓3(302)
留言5則, 4人參與, 最新討論串4/9 (看更多)
※ 引述《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

01/30 15:05, , 1F
真的太謝謝你了,我已經想了好幾天了,可以請問你為甚麼
01/30 15:05, 1F

01/30 15:06, , 2F
$partialSum = $digit = 0;嗎?
01/30 15:06, 2F

01/30 16:07, , 3F
初始化阿XD
01/30 16:07, 3F

01/31 01:50, , 4F
前輩 您使用到split的時候 嚴格來講就用到陣列了喔 XDD
01/31 01:50, 4F

01/31 10:30, , 5F
啊,對吼XD...(失敗)
01/31 10:30, 5F
文章代碼(AID): #1F9WuxEl (Perl)
討論串 (同標題文章)
文章代碼(AID): #1F9WuxEl (Perl)