2009年10月19日月曜日

StringBufferにはjoin()を代用する

文字列の連結を行うにはバッファリングを行った方が効率的です。JavaではStringBufferを用いますが、Pythonでははjoin()関数を利用します。

例)Python

buffer = []

for i in range(100):
buffer.append(str(i))

print ''.join(buffer)

例)Java

StringBuffer buffer = new StringBuffer(100);

for(int i = 0; i < 100; i++) {
buffer.append(String.valurof(i));
}

System.out.println(buffer.toString());

2009年10月9日金曜日

辞書にはKeyの存在を問合せる必要あり

Pythonの辞書(JavaではMap)から値を取り出す際に存在しないキーを指定するとエラーになってしまいます。
そのため取得を行う前にhas_key()を用いてキーの存在を問合せる必要があります。

例)Python

value = None

if map.has_key("hoge"):
value = map["hoge"]

例)Java
JavaのMapインターフェースではKeyが存在しない場合はnullを返すことが定義されています。

String value = (String)map.get("hoge");

2009年10月5日月曜日

インクリメント for ループ

インクリメントのforループです。

例)Python

"range(100)"は「100個の配列を生成する」という関数で、"0"から始まり"99"までとなります。

for i in range(100): # 変数iを0から99までインクリメントして繰り返す。
print i
例)Java

for (int i = 0; 100 > i; i++) {
System.out.pritln(i);
}

2009年10月1日木曜日

システム日付の取得

Pythonでのシステム日付の取得はdateオブジェクトを用います。

例)Python

from datetime import date

date.today().year
date.today().month
date.today().day

date.isoformat(date.today())
出力)

> 2009
> 10
> 1
> '2009-10-01'

例)Java

System.out.println(Calendar.getInstance().get(Calendar.YEAR));
System.out.println(Calendar.getInstance().get(Calendar.MONTH));
System.out.println(Calendar.getInstance().get(Calendar.DAY_OF_MONTH));

SimpleDateFormat sdf = new SimpleDateFormat("yyyy'-'MM'-'dd");
System.out.println(sdf.format(Calendar.getInstance().getTime()));