以下のような規則で並ぶデータファイルがある。
# 品目 仕入れ単価 販売単価 在庫数 卵パック 100 110 500 みかん1箱 800 980 100 ポテトチップス 70 88 800
これから販売単価を変数ap
,
在庫数を変数n
に数値として取り込むプログラムを書け。
#!/usr/local/bin/ruby
# -*- coding: utf-8 -*-
while line=gets
if /^#/ =~ line then # 行の先頭が # なら処理を飛ばす
next
elsif /^(\S+)\s+(\d+)\s+(\d+)\s+(\d+)$/ =~ line then
# ↑ ↑ ↑ ↑
# 品目 仕入れ単価 販売単価 在庫数
# $1 $2 $3 $4
# \S は 空白でない任意の1文字,\s は 空白1文字,\d は 数字1文字
ap = $3.to_i
n = $4.to_i
printf("品目%s の販売単価は%d円で%d個あります\n", $1, ap, n)
end
end
以下のような規則で並ぶデータファイルがある
#品目,仕入れ単価,販売単価,在庫数 卵パック,100,110,500 みかん1箱,800,980,100 ポテトチップス,70,88,800
これから販売単価を変数ap
,
在庫数を変数n
に数値として取り込むプログラムを書け。
#!/usr/local/bin/ruby
# -*- coding: utf-8 -*-
while line=gets
if /^#/ =~ line then # 行の先頭が # なら処理を飛ばす
next
elsif /^(\S+),([0-9]+),([^,]+),(.+)$/ =~ line then
# [x-y] は xからyの範囲に含まれる文字のどれか1字
# [ ] の中味の先頭を ^ にするとそれら以外の1字
# . は任意の1字
# $2,$3,$4 は違う指定だがどれも結局はカンマに挟まれた数値にマッチ
ap = $3.to_i
n = $4.to_i
printf("品目%s の販売単価は%d円で%d個あります\n", $1, ap, n)
end
end