開発環境
- OS X Mavericks - Apple (OS)
- Dart Editor (開発環境)
- Dartium | Dart/ Structured web apps (ブラウザ, Dart VM 用 (Chromium with the Dart VM))
- Safari (ブラウザ, JavaScript 用)
- Dart (プログラミング言語)
初めてのコンピュータサイエンス(Jennifer Campbell、Paul Gries、Jason Montojo、Greg Wilson(著)長尾 高弘(翻訳))の12章(各種ツール)、12.7(練習問題)、12-20.をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
12.7(練習問題)、12-20.
コード
sample.dart
import 'dart:html';
void main() {
InputElement run = querySelector('#run_dart');
InputElement clear = querySelector('#clear');
Element pre = querySelector('#pre0');
run.onClick.listen((MouseEvent event){
pre.text = '${window.navigator.userAgent}\n';
pre.text += testCases.map(
(var s) =>
findButNotAfter(s[0], s[1], s[2]) == s[3]).toString();
});
clear.onClick.listen((MouseEvent event) => pre.text = '');
}
int findButNotAfter(String source, String prefix, String pattern){
if(pattern == '' || prefix == ''){
return null;
}
int start = 0;
int result = source.indexOf(pattern);
while(result != -1){
if(source.substring(result - prefix.length, result) != prefix){
break;
}
start = result + 1;
result = source.indexOf(pattern, start);
}
if(result == -1){
return null;
}
return result;
}
var testCases = [['', '', '', null],
['', '', 'a', null],
['', 'a', '', null],
['a', '', '', null],
['', 'a', 'b', null],
['a', '', 'b', null],
['a', 'a', '', null],
['abcd', 'a', 'bc', null],
['abcdcd', 'ab', 'cd', 4],
['abxcdcd', 'ab', 'cd', 3]];
0 コメント:
コメントを投稿