2012年07月29日(日) [長年日記]
■ [java] java.util.Scanner#findWithinHorizon()
ScannerクラスのfindWithinHorizon()メソッドの仮引数horizonの意味が分からなかったのでメモ。horizonは検索対象とする文字数を意味するようだ。テストをメモ。
import java.util.Scanner;
import org.junit.Before;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
public class ScannerTest1 {
private Scanner scanner;
@Before
public void setup() {
scanner = new Scanner("珈琲\n紅茶");
}
@Test
public void horizon5() {
assertThat(scanner.findWithinHorizon("紅茶", 5), is("紅茶"));
}
@Test
public void horizon4() {
assertThat(scanner.findWithinHorizon("紅茶", 4), nullValue());
}
@Test
public void horizon0() {
assertThat(scanner.findWithinHorizon("紅茶", 0), is("紅茶"));
}
}
■ [java] java.util.Scannerは先頭/末尾の空トークンを無視する
Scannerのトークンの切り出し方も分かりにくかったのでメモ。普通は空トークンも切り出してくれるんだけど、先頭と末尾だけは無視してしまうようだ。これは不便だなあ。
import java.util.Scanner;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
public class ScannerTest2 {
@Test
public void comma0() {
Scanner scanner = new Scanner("one,two,,");
scanner.useDelimiter(",");
assertThat(scanner.next(), is("one"));
assertThat(scanner.next(), is("two"));
assertThat(scanner.next(), is(""));
assertThat(scanner.hasNext(), is(false));
}
@Test
public void comma1() {
Scanner scanner = new Scanner(",one,two,,");
scanner.useDelimiter(",");
assertThat(scanner.next(), is("one")); // いきなりoneが得られてしまう!
assertThat(scanner.next(), is("two"));
assertThat(scanner.next(), is(""));
assertThat(scanner.hasNext(), is(false));
}
@Test
public void comma2() {
Scanner scanner = new Scanner(",,one,two,,");
scanner.useDelimiter(",");
assertThat(scanner.next(), is(""));
assertThat(scanner.next(), is("one"));
assertThat(scanner.next(), is("two"));
assertThat(scanner.next(), is(""));
assertThat(scanner.hasNext(), is(false));
}
}
■ [サッカー] ロンドンオリンピック 男子 日本vsモロッコ (ニューカッスル)
リーグ戦の2戦目は対モロッコ。モロッコはアフリカの左上、スペインの下に位置する国である。日本は怪我の酒井宏の代わりに酒井高が先発。酒井高はそのまま右サイド。酒井左徳永右の方がいい気がするけれど。あと、大津がトップで永井が左サイドに位置していることが多かった。
モロッコは力強くて足元も上手い。試合開始から暫くはモロッコペース。ドリブルで突破され危ないシーンが何度も。途中からは日本が盛り返し、前半終了近くはコーナーキックなどから何度か惜しいシーンを作ったが決められず。日本の選手は疲れているのか元気がない。
後半も立ち上がりはモロッコペース。それを凌いで徐々に日本が主導権を握るように。そして清武が素晴らしいミドルシュート。が、GKが弾いてバーに当たってGKキャッチ。大津が打った強いミドルシュートもGKが触って枠外へ。相手ゴールキーパー冴えている。あと山口が抜け出した絶好のチャンスもあったがシュートはバーのちょっと上へ。モロッコは選手交代してからうまくいかなくなってきた。ただし7番ラビアドのミドルシュートは脅威。日本はなかなか交代しなくて苛々したが、30分頃漸く大津を斎藤に交代。永井を杉本に交代しろよと思っていたら、清武の相手DF背後へのパスに永井が快速で走り込み、出てきたキーパーを越す山なりのロングシュートを打ちそれが入った。永井やりおった。
その後清武を杉本に交代。ロスタイムに日本DFの裏へ入られてGKと1対1になったが権田が弾きそのこぼれを打たれたシュートも吉田?が弾いてギリギリ勝利。これでトーナメント進出決定。