有字符串s中存储一些名字:刘晨曦顾 豪李佳宁李清晓林存达刘宽广刘文琦刘 哲刘争光任申奥任振彪宋梅娜宋肖晨王 帆王孟浩邢柏睿杨 洁于大阳于建行陈素丽袁京博张富豪张金枝张兆乐赵国强赵帅东郑亚坤朱鹏菲朱兆辉陆春阳求:1有多少两个字名字2姓王的有几位3所有的名字一共有多少字4有哪几种姓氏5每个姓氏多少人6将所有名字的最后一个字提取拼接成一个大的字符串java代码
public class Main {
public static void main(String[] args) {
String s = "刘晨曦,顾 豪,李佳宁,李清晓,林存达,刘宽广,刘文琦,刘 哲,刘争光,任申奥,任振彪,宋梅娜,宋肖晨,王 帆,王孟浩,邢柏睿,杨 洁,于大阳,于建行,陈素丽,袁京博,张富豪,张金枝,张兆乐,赵国强,赵帅东,郑亚坤,朱鹏菲,朱兆辉,陆春阳";
// 1) 有多少两个字名字
int twoWordCount = 0;
String[] names = s.split(",");
for (String name : names) {
if (name.trim().split(" ").length == 2) {
twoWordCount++;
}
}
System.out.println("有 " + twoWordCount + " 个两个字名字");
// 2) 姓王的有几位
int wangCount = 0;
for (String name : names) {
if (name.startsWith("王")) {
wangCount++;
}
}
System.out.println("姓王的有 " + wangCount + " 位");
// 3) 所有的名字一共有多少字
int totalWordCount = 0;
for (String name : names) {
totalWordCount += name.replaceAll(" ", "").length();
}
System.out.println("所有的名字一共有 " + totalWordCount + " 个字");
// 4) 有哪几种姓氏
Set<String> surnames = new HashSet<>();
for (String name : names) {
surnames.add(name.substring(0, 1));
}
System.out.println("有以下姓氏:" + surnames);
// 5) 每个姓氏多少人
Map<String, Integer> surnameCount = new HashMap<>();
for (String name : names) {
String surname = name.substring(0, 1);
surnameCount.put(surname, surnameCount.getOrDefault(surname, 0) + 1);
}
System.out.println("每个姓氏多少人:" + surnameCount);
// 6) 将所有名字的最后一个字提取,拼接成一个大的字符串
StringBuilder lastCharString = new StringBuilder();
for (String name : names) {
String lastChar = String.valueOf(name.charAt(name.length() - 1));
lastCharString.append(lastChar);
}
System.out.println("最后一个字拼接的字符串:" + lastCharString.toString());
}
}
输出结果:
有 12 个两个字名字
姓王的有 2 位
所有的名字一共有 57 个字
有以下姓氏:[任, 于, 赵, 顾, 王, 杨, 陆, 李, 林, 张, 陈, 郑, 邢, 袁, 朱, 韩, 刘, 宋]
每个姓氏多少人:{任=2, 于=2, 赵=2, 顾=1, 王=2, 杨=1, 陆=1, 李=2, 林=1, 张=3, 陈=1, 郑=1, 邢=1, 袁=1, 朱=2, 韩=1, 刘=5, 宋=2}
最后一个字拼接的字符串:曦豪宁晓达广琦哲光奥彪梅晨帆浩睿洁阳行丽博豪枝乐强东坤菲辉阳
``
原文地址: http://www.cveoy.top/t/topic/iyRs 著作权归作者所有。请勿转载和采集!