mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
fix pinyin bug
This commit is contained in:
parent
cf19fe3003
commit
165b915506
@ -18,6 +18,7 @@
|
||||
* 【poi 】 修复WordWriter写表格问题(pr#914@Github)
|
||||
* 【core 】 修复IoUtil.readBytes缓存数组长度问题(issue#I1KIUE@Gitee)
|
||||
* 【core 】 修复BigExcelWriter多次flush导致的问题(issue#920@Github)
|
||||
* 【extra 】 绕过Pinyin4j最后一个分隔符失效的bug(issue#921@Github)
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package cn.hutool.extra.pinyin.engine.pinyin4j;
|
||||
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.pinyin.PinyinEngine;
|
||||
import cn.hutool.extra.pinyin.PinyinException;
|
||||
import net.sourceforge.pinyin4j.PinyinHelper;
|
||||
@ -82,11 +83,16 @@ public class Pinyin4jEngine implements PinyinEngine {
|
||||
|
||||
@Override
|
||||
public String getPinyin(String str, String separator) {
|
||||
// 添加一个后缀是为了解决Pinyin4j的bug,在指定分隔符后,最后两个词的分隔符失效
|
||||
str += StrUtil.SPACE;
|
||||
String result;
|
||||
try {
|
||||
return PinyinHelper.toHanYuPinyinString(str, format, separator, true);
|
||||
result = PinyinHelper.toHanYuPinyinString(str, format, separator, true);
|
||||
} catch (BadHanyuPinyinOutputFormatCombination e) {
|
||||
throw new PinyinException(e);
|
||||
}
|
||||
|
||||
return StrUtil.removeSuffix(result, StrUtil.SPACE);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package cn.hutool.extra.pinyin;
|
||||
|
||||
import cn.hutool.extra.pinyin.engine.pinyin4j.Pinyin4jEngine;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
@ -11,6 +12,13 @@ public class PinyinUtilTest {
|
||||
Assert.assertEquals("ni hao", pinyin);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPinyinByPinyin4jTest(){
|
||||
final Pinyin4jEngine engine = new Pinyin4jEngine();
|
||||
final String pinyin = engine.getPinyin("你好", " ");
|
||||
Assert.assertEquals("ni hao", pinyin);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPinyinUpperCaseTest(){
|
||||
final String pinyin = PinyinUtil.getPinyin("你好怡", " ");
|
||||
@ -22,4 +30,11 @@ public class PinyinUtilTest {
|
||||
final String result = PinyinUtil.getFirstLetter("H是第一个", ", ");
|
||||
Assert.assertEquals("h, s, d, y, g", result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getFirstLetterByPinyin4jTest(){
|
||||
final Pinyin4jEngine engine = new Pinyin4jEngine();
|
||||
final String result = engine.getFirstLetter("林海", "");
|
||||
Assert.assertEquals("lh", result);
|
||||
}
|
||||
}
|
||||
|
@ -52,6 +52,17 @@ public class HttpUtil {
|
||||
return url.toLowerCase().startsWith("https");
|
||||
}
|
||||
|
||||
/**
|
||||
* 检测是否http
|
||||
*
|
||||
* @param url URL
|
||||
* @return 是否https
|
||||
* @since 5.3.8
|
||||
*/
|
||||
public static boolean isHttp(String url) {
|
||||
return url.toLowerCase().startsWith("http");
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建Http请求对象
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user