akjava.com GoogleCollections ライブラリー

Apache 2.0 ライセンスです

Functions

JapaneseFunctions

目標
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));
	}
}



Comments