Apache 2.0 ライセンスです FunctionsJapaneseFunctions目標 GWTコンパチブルで、Google Collections LibraryのFunctionベースの日本語変換 ライブラリーを提供すること バグレポートなどは、Projectページよりお願いします。 このクラスは、内部でNew BSD LicensedのKanaxs を呼び出しています。 Functionベースですので、ListやMapなどから変換が容易だったり、他の変換との組み合わせることが可能です。 使いかた Testコードを見てみてください。Testコード最新版 テキスト ボックス/*
* Copyright (C) 2010 akjava.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.akjava.gc.test;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import junit.framework.TestCase;
import com.akjava.gc.functions.JapaneseFunctions;
import com.google.common.base.Function;
import com.google.common.base.Functions;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
public class JapaneseFunctionTest extends TestCase {
public void test_zenkakuAlphabetToAlphabet(){
doTest("ABCabc123&+","ABCabc123&+",JapaneseFunctions.zenkakuAlphabetToAlphabet());
}
public void test_alphabetToZenkakuAlphabet(){
doTest("ABCabc123&+","ABCabc123&+",JapaneseFunctions.alphabetToZenkakuAlphabet());
}
public void test_katakanaToHiragana(){
doTest("アイウエオ","あいうえお",JapaneseFunctions.katakanaToHiragana());
}
public void test_katakanaToHiragana2(){
doTest("アイウエオアイウエオ","あいうえおアイウエオ",JapaneseFunctions.katakanaToHiragana());
}
public void test_katakanaToHiragana3(){
doTest("アイウエオアイウエオ","あいうえおあいうえお",Functions.compose(JapaneseFunctions.katakanaToHiragana(), JapaneseFunctions.hankakuKanaToZenkakuKana()));
}
public void test_hiraganaToKatakana(){
doTest("あいうえお","アイウエオ",JapaneseFunctions.hiraganaToKatakana());
}
public void test_hankakuKanaToZenkakuKana(){
doTest("アイウエオガバパ","アイウエオガバパ",JapaneseFunctions.hankakuKanaToZenkakuKana());
}
public void test_zenkakuKanaToHankakuKana(){
doTest("アイウエオガバパ","アイウエオガバパ",JapaneseFunctions.zenkakuKanaToHankakuKana());
}
public void test_zenkakuHifunToHankakuHifun(){
doTest("ー"+"-","--",JapaneseFunctions.zenkakuHifunToHankakuHifun());
}
public void test_zenkakuSpaceToHankakuSpace(){
doTest(" "," ",JapaneseFunctions.zenkakuSpaceToHankakuSpace());
}
public void test_zenkakuNumberToHankakuNumber(){
doTest("123ABC","123ABC",JapaneseFunctions.zenkakuNumberToHankakuNumber());
}
public void test_zenkakuNumberAndHifunToHankaku(){
doTest("181ー0000","181-0000",JapaneseFunctions.zenkakuNumberAndHifunToHankaku());
}
/**
* リストをまとめて変換例
*/
public void test_list(){
List<String> lists=Arrays.asList("新東京3-1","181-0000");
String collect="新東京3-1,181-0000";
List<String> hankakued=Lists.transform(lists, JapaneseFunctions.zenkakuNumberAndHifunToHankaku());
assertEquals(collect, Joiner.on(",").join(hankakued));
}
/**
* //Mapの値をまとめて修正例
*/
public void test_map(){
Map<String,String> input=Maps.newLinkedHashMap();
input.put("address", "新東京3-1");
input.put("zip", "181-0000");
String collect="address=新東京3-1,zip=181-0000";
Map<String,String> hankakued=Maps.transformValues(input, JapaneseFunctions.zenkakuNumberAndHifunToHankaku());
assertEquals(collect, Joiner.on(",").withKeyValueSeparator("=").join(hankakued));
}
private void doTest(String before,String collect,Function<String,String> function){
assertEquals(collect, function.apply(before));
}
} |