java根据姓名首字母查询姓名

左手的ㄟ右手 2024-03-23 12:36 140阅读 0赞

1.用来完成简单的通过姓氏首字母查询,然后返回来姓名。

  1. import com.hankcs.hanlp.HanLP;
  2. import com.hankcs.hanlp.dictionary.py.Pinyin;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Scanner;
  6. public class Dome04 {
  7. public static void main(String[] args) {
  8. ArrayList<String> names = new ArrayList<>();
  9. names.add("张益达");
  10. names.add("马子哥");
  11. names.add("田大宝贝");
  12. Scanner scanner = new Scanner(System.in);
  13. while (true) {
  14. System.out.println("请输入名字首字母:");
  15. String name = scanner.next();
  16. //定义surname代表姓氏
  17. char surname = 0;
  18. //挑选出名字首字母
  19. for (int i = 0; i < names.size(); i++) {
  20. surname = names.get(i).charAt(0);
  21. //提出姓氏
  22. List<Pinyin> pinyins = HanLP.convertToPinyinList(String.valueOf(surname));
  23. //提出姓氏的声母
  24. for (Pinyin pinyin : pinyins) {
  25. String b = String.valueOf(pinyin.getShengmu());
  26. //判断输入首字母name,和名字里姓氏是否匹配
  27. if (b.contains(name)) {
  28. //根据匹配成功输出姓名
  29. System.out.println(names.get(i));
  30. } else {
  31. continue;
  32. }
  33. }
  34. }
  35. }
  36. }
  37. }

我这里用了个死循环,毕竟没得下一步操作。

看一下结果吧

a8efc69707f8417aa41c84102a2bdc3f.png

发表评论

表情:
评论列表 (有 0 条评论,140人围观)

还没有评论,来说两句吧...

相关阅读