1.匹配中文字符集
String str = "测";
String regEx = "^[\u4e00-\u9fa5]$"; // 匹配单个汉字
Pattern pattern = Pattern.compile(regEx); // 编译正则表达式
Matcher matcher = pattern.matcher(str); // 生成一个给定命名的Matcher对象
boolean result = matcher.find(); // 查找下一个匹配子串
if (result) {
System.out.println("此为汉字");
} else {
System.out.println("不是汉字");
}
2.将字符串中的汉字转换成拼音(需要三方库pinyin4j)
public class RegEx {
public static void main(String args[]) {
System.out.println(covert2PinYin("Hi.徐.brook!"));
}
//判断字符串中是否包含中文字符
public static boolean hasChineseChar(String str) {
String regEx = "[\u4e00-\u9fa5]+"; //匹配一个或多个汉字,任何位置
Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group()); //输出第一个被匹配到得字符串
return true;
}
return false;
}
//取得匹配的中文字符串,并依次添加到List中
public static void getChineseGroup(String str,List<String> list) {
String regEx = "[\u4e00-\u9fa5]+"; //匹配一个或多个汉字,任何位置
Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
list.add(matcher.group());
}
}
//把字符串中的中文字符转换成拼音
public static String covert2PinYin(String str){
String newStr = str;
List<String> chineseGroupList = new ArrayList<String>();
List<String> pinYinGroupList = new ArrayList<String>();
getChineseGroup(str,chineseGroupList);
for(String strGroup: chineseGroupList){
pinYinGroupList.add(HanZi2PinYin(strGroup));
}
for(int i= 0 ;i<chineseGroupList.size();i++){
newStr = newStr.replace(chineseGroupList.get(i), pinYinGroupList.get(i));
}
return newStr;
}
//匹配想要的字符串
public static Boolean match(String regex, String str) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}
//把汉字转换成拼音,字符串必须全为汉字
public static String HanZi2PinYin(String hanzi) {
CharSequence s = hanzi.trim();
char[] hanzhi = new char[s.length()];
for (int i = 0; i < s.length(); i++) {
hanzhi[i] = s.charAt(i);
}
char[] t1 = hanzhi;
String[] t2 = new String[s.length()];
/** */
/**
* 设置输出格式
*/
HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
t3.setVCharType(HanyuPinyinVCharType.WITH_V);
int t0 = t1.length;
String py = "";
try {
for (int i = 0; i < t0; i++) {
t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
py = py + t2[0].toString();
}
} catch (BadHanyuPinyinOutputFormatCombination e1) {
e1.printStackTrace();
}
return py.trim();
}
}
String str = "测";
String regEx = "^[\u4e00-\u9fa5]$"; // 匹配单个汉字
Pattern pattern = Pattern.compile(regEx); // 编译正则表达式
Matcher matcher = pattern.matcher(str); // 生成一个给定命名的Matcher对象
boolean result = matcher.find(); // 查找下一个匹配子串
if (result) {
System.out.println("此为汉字");
} else {
System.out.println("不是汉字");
}
2.将字符串中的汉字转换成拼音(需要三方库pinyin4j)
public class RegEx {
public static void main(String args[]) {
System.out.println(covert2PinYin("Hi.徐.brook!"));
}
//判断字符串中是否包含中文字符
public static boolean hasChineseChar(String str) {
String regEx = "[\u4e00-\u9fa5]+"; //匹配一个或多个汉字,任何位置
Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group()); //输出第一个被匹配到得字符串
return true;
}
return false;
}
//取得匹配的中文字符串,并依次添加到List中
public static void getChineseGroup(String str,List<String> list) {
String regEx = "[\u4e00-\u9fa5]+"; //匹配一个或多个汉字,任何位置
Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
list.add(matcher.group());
}
}
//把字符串中的中文字符转换成拼音
public static String covert2PinYin(String str){
String newStr = str;
List<String> chineseGroupList = new ArrayList<String>();
List<String> pinYinGroupList = new ArrayList<String>();
getChineseGroup(str,chineseGroupList);
for(String strGroup: chineseGroupList){
pinYinGroupList.add(HanZi2PinYin(strGroup));
}
for(int i= 0 ;i<chineseGroupList.size();i++){
newStr = newStr.replace(chineseGroupList.get(i), pinYinGroupList.get(i));
}
return newStr;
}
//匹配想要的字符串
public static Boolean match(String regex, String str) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}
//把汉字转换成拼音,字符串必须全为汉字
public static String HanZi2PinYin(String hanzi) {
CharSequence s = hanzi.trim();
char[] hanzhi = new char[s.length()];
for (int i = 0; i < s.length(); i++) {
hanzhi[i] = s.charAt(i);
}
char[] t1 = hanzhi;
String[] t2 = new String[s.length()];
/** */
/**
* 设置输出格式
*/
HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
t3.setVCharType(HanyuPinyinVCharType.WITH_V);
int t0 = t1.length;
String py = "";
try {
for (int i = 0; i < t0; i++) {
t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
py = py + t2[0].toString();
}
} catch (BadHanyuPinyinOutputFormatCombination e1) {
e1.printStackTrace();
}
return py.trim();
}
}