add Houbb support

This commit is contained in:
Looly 2021-04-10 23:08:15 +08:00
parent b6178794c5
commit 155dce6f3a
11 changed files with 125 additions and 45 deletions

View File

@ -19,6 +19,7 @@
* 【http 】 SoapClient增加针对不同协议的头信息pr#305@Gitee * 【http 】 SoapClient增加针对不同协议的头信息pr#305@Gitee
* 【http 】 HttpRequest支持307、308状态码识别issue#1504@Github * 【http 】 HttpRequest支持307、308状态码识别issue#1504@Github
* 【core 】 CharUtil.isBlankChar增加\u0000判断pr#1505@Github * 【core 】 CharUtil.isBlankChar增加\u0000判断pr#1505@Github
* 【extra 】 添加Houbb Pinyin支持pr#1506@Github
### Bug修复 ### Bug修复
* 【core 】 修复Validator.isUrl()传空返回trueissue#I3ETTY@Gitee * 【core 】 修复Validator.isUrl()传空返回trueissue#I3ETTY@Gitee

View File

@ -327,6 +327,7 @@
<groupId>com.github.houbb</groupId> <groupId>com.github.houbb</groupId>
<artifactId>pinyin</artifactId> <artifactId>pinyin</artifactId>
<version>0.2.0</version> <version>0.2.0</version>
<optional>true</optional>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cglib</groupId> <groupId>cglib</groupId>

View File

@ -1,13 +1,14 @@
package cn.hutool.extra.pinyin.engine.pinyin; package cn.hutool.extra.pinyin.engine.houbbpinyin;
import cn.hutool.extra.pinyin.PinyinEngine;
import com.github.houbb.pinyin.constant.enums.PinyinStyleEnum; import com.github.houbb.pinyin.constant.enums.PinyinStyleEnum;
import com.github.houbb.pinyin.util.PinyinHelper; import com.github.houbb.pinyin.util.PinyinHelper;
/** /**
* 封装了 Pinyin 的引擎 * 封装了 houbb Pinyin 的引擎
* *
* <p> * <p>
* pinyin(https://github.com/houbb/pinyin)封装 * houbb pinyin(https://github.com/houbb/pinyin)封装
* </p> * </p>
* *
* <p> * <p>
@ -22,7 +23,7 @@ import com.github.houbb.pinyin.util.PinyinHelper;
* *
* @author looly * @author looly
*/ */
public class PinyinEngine implements cn.hutool.extra.pinyin.PinyinEngine { public class HoubbPinyinEngine implements PinyinEngine {
/** /**
* 汉字拼音输出的格式 * 汉字拼音输出的格式
@ -32,7 +33,7 @@ public class PinyinEngine implements cn.hutool.extra.pinyin.PinyinEngine {
/** /**
* 构造 * 构造
*/ */
public PinyinEngine() { public HoubbPinyinEngine() {
this(null); this(null);
} }
@ -41,7 +42,7 @@ public class PinyinEngine implements cn.hutool.extra.pinyin.PinyinEngine {
* *
* @param format 格式 * @param format 格式
*/ */
public PinyinEngine(PinyinStyleEnum format) { public HoubbPinyinEngine(PinyinStyleEnum format) {
init(format); init(format);
} }
@ -67,7 +68,7 @@ public class PinyinEngine implements cn.hutool.extra.pinyin.PinyinEngine {
@Override @Override
public String getPinyin(String str, String separator) { public String getPinyin(String str, String separator) {
String result; String result;
result = PinyinHelper.toPinyin(str, format); result = PinyinHelper.toPinyin(str, format, separator);
return result; return result;
} }
} }

View File

@ -17,4 +17,4 @@
* *
* @author looly * @author looly
*/ */
package cn.hutool.extra.pinyin.engine.pinyin; package cn.hutool.extra.pinyin.engine.houbbpinyin;

View File

@ -1,4 +1,5 @@
cn.hutool.extra.pinyin.engine.tinypinyin.TinyPinyinEngine cn.hutool.extra.pinyin.engine.tinypinyin.TinyPinyinEngine
cn.hutool.extra.pinyin.engine.jpinyin.JPinyinEngine cn.hutool.extra.pinyin.engine.jpinyin.JPinyinEngine
cn.hutool.extra.pinyin.engine.pinyin4j.Pinyin4jEngine cn.hutool.extra.pinyin.engine.pinyin4j.Pinyin4jEngine
cn.hutool.extra.pinyin.engine.bopomofo4j.Bopomofo4jEngine cn.hutool.extra.pinyin.engine.bopomofo4j.Bopomofo4jEngine
cn.hutool.extra.pinyin.engine.houbbpinyin.HoubbPinyinEngine

View File

@ -0,0 +1,23 @@
package cn.hutool.extra.pinyin;
import cn.hutool.extra.pinyin.engine.bopomofo4j.Bopomofo4jEngine;
import org.junit.Assert;
import org.junit.Test;
public class Bopomofo4jTest {
final Bopomofo4jEngine engine = new Bopomofo4jEngine();
@Test
public void getFirstLetterByBopomofo4jTest(){
final String result = engine.getFirstLetter("林海", "");
Assert.assertEquals("lh", result);
}
@Test
public void getPinyinByBopomofo4jTest() {
final String pinyin = engine.getPinyin("你好h", " ");
Assert.assertEquals("ni haoh", pinyin);
}
}

View File

@ -0,0 +1,22 @@
package cn.hutool.extra.pinyin;
import cn.hutool.extra.pinyin.engine.houbbpinyin.HoubbPinyinEngine;
import org.junit.Assert;
import org.junit.Test;
public class HoubbPinyinTest {
final HoubbPinyinEngine engine = new HoubbPinyinEngine();
@Test
public void getFirstLetterTest(){
final String result = engine.getFirstLetter("林海", "");
Assert.assertEquals("lh", result);
}
@Test
public void getPinyinTest() {
final String pinyin = engine.getPinyin("你好h", " ");
Assert.assertEquals("ni hao h", pinyin);
}
}

View File

@ -0,0 +1,23 @@
package cn.hutool.extra.pinyin;
import cn.hutool.extra.pinyin.engine.jpinyin.JPinyinEngine;
import org.junit.Assert;
import org.junit.Test;
public class JpinyinTest {
final JPinyinEngine engine = new JPinyinEngine();
@Test
public void getFirstLetterByPinyin4jTest(){
final String result = engine.getFirstLetter("林海", "");
Assert.assertEquals("lh", result);
}
@Test
public void getPinyinByPinyin4jTest() {
final String pinyin = engine.getPinyin("你好h", " ");
Assert.assertEquals("ni hao h", pinyin);
}
}

View File

@ -0,0 +1,22 @@
package cn.hutool.extra.pinyin;
import cn.hutool.extra.pinyin.engine.pinyin4j.Pinyin4jEngine;
import org.junit.Assert;
import org.junit.Test;
public class Pinyin4jTest {
final Pinyin4jEngine engine = new Pinyin4jEngine();
@Test
public void getFirstLetterByPinyin4jTest(){
final String result = engine.getFirstLetter("林海", "");
Assert.assertEquals("lh", result);
}
@Test
public void getPinyinByPinyin4jTest() {
final String pinyin = engine.getPinyin("你好h", " ");
Assert.assertEquals("ni hao h", pinyin);
}
}

View File

@ -1,7 +1,5 @@
package cn.hutool.extra.pinyin; package cn.hutool.extra.pinyin;
import cn.hutool.extra.pinyin.engine.bopomofo4j.Bopomofo4jEngine;
import cn.hutool.extra.pinyin.engine.pinyin4j.Pinyin4jEngine;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
@ -9,26 +7,6 @@ public class PinyinUtilTest {
@Test @Test
public void getPinyinTest(){ public void getPinyinTest(){
final String pinyin = PinyinUtil.getPinyin("你好", " ");
Assert.assertEquals("ni hao", pinyin);
}
@Test
public void getPinyinByPinyin4jTest() {
final Pinyin4jEngine engine = new Pinyin4jEngine();
final String pinyin = engine.getPinyin("你好h", " ");
Assert.assertEquals("ni hao h", pinyin);
}
@Test
public void getPinyinByBopomofo4jTest() {
final Bopomofo4jEngine engine = new Bopomofo4jEngine();
final String pinyin = engine.getPinyin("你好h", " ");
Assert.assertEquals("ni haoh", pinyin);
}
@Test
public void getPinyinUpperCaseTest(){
final String pinyin = PinyinUtil.getPinyin("你好怡", " "); final String pinyin = PinyinUtil.getPinyin("你好怡", " ");
Assert.assertEquals("ni hao yi", pinyin); Assert.assertEquals("ni hao yi", pinyin);
} }
@ -44,18 +22,4 @@ public class PinyinUtilTest {
final String result = PinyinUtil.getFirstLetter("崞阳", ", "); final String result = PinyinUtil.getFirstLetter("崞阳", ", ");
Assert.assertEquals("g, y", result); Assert.assertEquals("g, y", result);
} }
@Test
public void getFirstLetterByPinyin4jTest(){
final Pinyin4jEngine engine = new Pinyin4jEngine();
final String result = engine.getFirstLetter("林海", "");
Assert.assertEquals("lh", result);
}
@Test
public void getFirstLetterByBopomofo4jTest(){
final Bopomofo4jEngine engine = new Bopomofo4jEngine();
final String result = engine.getFirstLetter("林海", "");
Assert.assertEquals("lh", result);
}
} }

View File

@ -0,0 +1,22 @@
package cn.hutool.extra.pinyin;
import cn.hutool.extra.pinyin.engine.tinypinyin.TinyPinyinEngine;
import org.junit.Assert;
import org.junit.Test;
public class TinyPinyinTest {
final TinyPinyinEngine engine = new TinyPinyinEngine();
@Test
public void getFirstLetterByPinyin4jTest(){
final String result = engine.getFirstLetter("林海", "");
Assert.assertEquals("lh", result);
}
@Test
public void getPinyinByPinyin4jTest() {
final String pinyin = engine.getPinyin("你好h", " ");
Assert.assertEquals("ni hao h", pinyin);
}
}