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

看板Perl作者 (saka)時間13年前 (2012/01/29 06:43), 編輯推噓4(403)
留言7則, 6人參與, 最新討論串1/9 (看更多)
大家好,我式perl的新手 請問如果從<STDIN>輸入任意數字或字母, 在不使用"陣列"跟"正規表示法"的前提下, 怎麼只取數字,並運行基本的運算 例如: 使用者輸入: 1 12 3 a 24 e 5 螢幕顯示: 1+12+3+24+5=45 我本來用substr來取單一字元,可是這樣12會被拆成1跟2, 我卡這裡很久了,實在想不出來,所以請大家幫幫忙 謝謝D -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 24.130.53.186

01/29 09:46, , 1F
那就用for配substr把空格換成+再用eval算吧
01/29 09:46, 1F

01/29 13:54, , 2F
hash 也不能用?
01/29 13:54, 2F

01/29 14:19, , 3F
我有想過用hash,不過感覺行不通,因為隨機的輸入的數值
01/29 14:19, 3F

01/29 14:57, , 4F
split(/\s+/,$input);
01/29 14:57, 4F

01/29 16:01, , 5F
用正規和陣列明明瞬間就做好了...
01/29 16:01, 5F

01/29 17:53, , 6F
應該是課還沒上到陣列,只上到運算符號而已吧。
01/29 17:53, 6F

01/29 18:37, , 7F
$input=~s/(?<=\d)\D+(?=\d)/+/g; $ans = eval $input;
01/29 18:37, 7F
文章代碼(AID): #1F97eRl1 (Perl)
討論串 (同標題文章)
文章代碼(AID): #1F97eRl1 (Perl)