開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- Script言語:Perl
『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2) の14章(文字列処理とソート)、14.5(練習問題)3を解いてみる。
その他参考書籍
3.
コード(BBEdit)
sample.pl
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ':utf8';
binmode STDOUT, ':utf8';
print "文字列: ";
chomp(my $str = <STDIN>);
while(1){
print "部分文字列: ";
chomp(my $substr = <STDIN>);
last if $substr =~/^\s*$/;
my @numbers = ();
my $where = index($str, $substr);
while($where != -1){
push @numbers, $where;
$where = index($str, $substr, $where + 1);
}
print "@numbers\n";
}
入出力結果(Terminal)
$ ./sample.pl 文字列: This is a test. 部分文字列: is 2 5 部分文字列: a 8 部分文字列: t 10 13 部分文字列: $
ちなみにJavaScriptの場合。
コード(BBEdit)
var str = $('#text_str').val();
var substr = $('#text_substr').val();
var nums = [];
var i = str.indexOf(substr);
while(i !== -1){
nums.push(i);
i = str.indexOf(substr, i + 1);
}
$('#pre0').text(nums);
pythonの場合。
sample.py
コード(BBEdit)
#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-
import re
s = input("文字列: ")
while 1:
sub_s = input("部分文字列: ")
if re.search(r"^\s*$", sub_s): break
nums = []
i = s.find(sub_s)
while i != -1:
nums.append(i)
i = s.find(sub_s, i + 1)
print(nums)
入出力結果(Terminal)
$ ./sample.py 文字列: This is a test. 部分文字列: is [2, 5] 部分文字列: a [8] 部分文字列: t [10, 13] 部分文字列: $
0 コメント:
コメントを投稿