2011年4月13日水曜日

Java で日本語の禁則処理

ってむっちゃ簡単に実現できる。

java.text.BreakIteratorを使用。


ソースコード:
public class BreakIteratorTest { public static void main(String[] args) { try { final String text01 = "こんにちは。" + "僕はラッセル\r\nです。" + "自然探検隊第54団第12班の隊員です。" + "何かお手伝いは要りませんか?" + "例えば道を渡るとか!?" + "いらん" ; doOne(text01); } finally { } } public static void doOne(String source) { System.out.println("source:" + source + "\r\n"); source = StringUtils.deleteWhitespace(source); BreakIterator boundary = BreakIterator.getSentenceInstance(Locale.JAPAN); boundary.setText(source); printEachForward(boundary, source); } public static void printEachForward(BreakIterator boundary, String source) { int start = boundary.first(); for (int end = boundary.next(); end != BreakIterator.DONE; start = end, end = boundary.next()) { System.out.println(" - " + source.substring(start,end)); } } }


実行結果:
source:こんにちは。僕はラッセル です。自然探検隊 第54団 第12班の隊員です。何かお手伝いは要りませんか?例えば道を渡るとか!?いらん - こんにちは。 - 僕はラッセルです。 - 自然探検隊第54団第12班の隊員です。 - 何かお手伝いは要りませんか? - 例えば道を渡るとか!? - いらん

2011年4月3日日曜日

「ゆう」のはやめてぇぇ

「言う」を「ゆう」と表記するのはやめて欲しいなぁ。

30過ぎのオトナが「ゆう」と書いてるのを見ると、かなり恥ずかしいゾ。
いくら理系と言ってもね。

そうゆういうヒトは、これまでの人生で、本や新聞を読んだりして活字に触れることをして来なかったんだろうなぁ。
小学校の作文の授業でセンセーから指摘されなかったのだろうか?


きっとその子供も「ゆう」んだろう。

Apache Solr 1.4.1 が返すステータス

Apache Solr 1.4.1 は、検索を行うと、
<response>
  <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">360</int>
  ...
のようなレスポンスを返すが、この <int name="status"> の値が気になったのでソースを調べてみた。

org.apache.solr.common.SolrException :
  public enum ErrorCode {
    BAD_REQUEST( 400 ),
    UNAUTHORIZED( 401 ),
    FORBIDDEN( 403 ),
    NOT_FOUND( 404 ),
    SERVER_ERROR( 500 ),
    SERVICE_UNAVAILABLE( 503 ),
    UNKNOWN(0);
    final int code;

という enum が定義されていた。

HTTPの レスポンスステータスコードに似せてる感じだけど、成功時は 200 じゃなくて 0 を返す。

0 以外の値が返るのを見たことないけどね。