败bai
柏bai
拜bai
掰bai
唄bai bei
庍bai xin
扒bai ba
拝bai
挀bai要求取出这些数据里面的多音字,请问各位该如何实现呢?
柏bai
拜bai
掰bai
唄bai bei
庍bai xin
扒bai ba
拝bai
挀bai要求取出这些数据里面的多音字,请问各位该如何实现呢?
解决方案 »
- java.lang.ClassNotFoundException: org/apache/xerces/parsers/SAXParser难题求解
- ant 打包的问题
- 向您请教
- 谁能推荐一本关于IntelliJ IDEA 的书啊!!
- JBoss+Tomcat居然不能编译<jsp:include page="xxx.xxx"/>标记
- error establishing socket???!!!
- 菜鸟向高手求教关于jbulider向weblogic 部署ejb组件的问题
- 请教高手
- 请问我在XML中增加节点,怎么做?很急详细一点,就55分了,都给了!
- action在Struts2中做了配置,但是点击超链接的时候没有跳转到指定页面
- 关于hibernate进行多表查询
- 反射机制调用的方法如何配置spring事务?
一个数组装一个字的拼音
再把数组设为map 中对应的值,
取的时候,map.get("字")
判断数组长度,得出是否是多音字。
现在整成这样的数组了,能取出多音字来吗?
2、如果存放在数据库,写sql的时候,按照 字分组,查询拼音。
封装到 Map<String ,List<String>> 中,一个字,对应多个拼音,即是多音字。3、如果是存储在文件中,则需要java的io读取文件,一行一行分解。
我估且做个假设了,假设数据是个String字组;多音字判断标准是中文后根一串拼音,然后一个空格,然后又是一串拼音。
public static void main(String[] args) {
Pattern p = Pattern.compile("[\\u4e00-\\u9fa5]{1}[a-z]+\\s{1}[a-z]+");
Matcher m;
String[] str = new String[]{"败bai","柏bai","拜bai","掰bai","唄bai bei","庍bai xin","扒bai ba","拝bai","挀bai"};
for(int i = 0;i < str.length;i++){
String s = str[i];
m = p.matcher(s);
if(m.matches()){
System.out.println(s);
}
}
}
如果楼主数据从数据库里取的,那就循环那个结果集吧,如果数据量很大,可以分多次读取。
String[] words = "败bai 柏bai 拜bai 掰bai 唄bai bei 庍bai xin 扒bai ba 拝bai 挀bai".split(" ");
for (int i = 0; i<words.length-1;i++) {
if (words[i].getBytes().length!=words[i].length()&&words[i+1].getBytes().length==words[i+1].length()) {
System.out.println("多音字 "+words[i].substring(0,1));
}
}
public static Map<String, List<String>> getMap(String[] s){
Map<String, List<String>> map = null ;
if(s!=null && s.length>1){
map = new HashMap<String, List<String>> () ;
for (int i = 0; i < s.length; i++) {
String str = s[i].substring(1) ;
List<String> list = null ;
if(map.containsKey(str)){
list = map.get(str) ;
list.add(s[i].substring(0, 1)) ;
}
else{
list = new ArrayList<String>() ;
list.add(s[i].substring(0, 1)) ;
map.put(str, list) ;
}
}
}
return map;
}
public static void main(String[] args) {
Map<String, List<String>> map = getMap("败bai 柏bai 拜bai 掰bai 唄bai bei 庍bai xin 扒bai ba 拝bai 挀bai".split(" ")) ;
for (String key : map.keySet()) {
System.out.println(key +"--" +map.get(key).size());
} }
}