显示所有中国城市需要多少个汉字?

显示所有中国城市需要多少个汉字呢?

需要3678个汉字,看看我怎么知道的。

第一步:先找到中国的所有城市的名称

去哪里找到中国的所有城市的名称呢?

进入中国天气网:http://www.weather.com.cn/

使用 F12 打开浏览器的调试面板,进入Network 页签,

然刷新页面,再过滤JS,最后找到city.js

然后右键city.js 另存为,将city.js下载下来

该js文件有 13705 行,手工一个个的统计使用了多少个汉字显然不现实。

So?

第二步:简单写个程序筛选出不重复的汉字

手工统计不现实,需要使用更高效的工具,

做这种活肯定是程序最在行的了。

程序也非常的简单,关键是知道基本汉字的取值范围:\u4E00 - \u9FFF,这里包含20992个基本汉字

具体程序如下↓

复制代码
import java.io.*;
import java.util.*;

public class RemoveDuplicateWords {
    public static void main(String[] args) {
        String inputFilePath = "/city.js"; // 替换为你的输入文本文件路径
        String outputFilePath = "/cityName.txt"; // 替换为你希望输出的新文本文件路径
        // Set 集合不重复保存
        Set<String> uniqueWords = new HashSet<>();

        try (BufferedReader br = new BufferedReader(new FileReader(inputFilePath))) {
            String line;
            while ((line = br.readLine()) != null) {
                for (int i = 0; i < line.length(); i++) {
                    char charAt = line.charAt(i);
                    // 在这里添加你的判断逻辑
                    if(isChinese(charAt)){
                        System.out.println("汉字: " + charAt);
                    }
                    else {
                        System.out.println("非汉字: " + charAt);
                        continue;
                    }
                    // 添加到集合中
                    uniqueWords.add(String.valueOf(charAt));
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        try (BufferedWriter bw = new BufferedWriter(new FileWriter(outputFilePath))) {
            for (String entry : uniqueWords) { // 遍历所有值
                bw.write(entry); // 写入新文件
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    // 基本汉字取值范围,这里包含20992个基本汉字
    public static boolean isChinese(char c) {
        return c >= '\u4E00' && c <= '\u9FFF';
    }
}

最终输出的文件内容如下,一共3678个汉字

里面一定有你和我都不认识的汉字,因为常用汉字是3500个。

中国之大,这一生也不可能走遍,但总会有你喜欢的城市烟火。

总结

编程语言是非常高效的工具,在现在和未来都将是不可替代的工具。在现在和未来也将不是程序员才学习的知识,而是所有人都应该去掌握的工具,不追求精通什么,只作为你趁手的工具。

软考中级--软件设计师毫无保留的备考分享

计算机算法设计与分析(第5版)

自己编写平滑加权轮询算法,实现反向代理集群服务的平滑分配

Java全栈学习路线、学习资源和面试题一条龙

更多优质文章,请关注WXgzh:Java全栈布道师

相关推荐
别动我齐刘海9 小时前
C++ 工程化学习
java·linux·前端·c++·学习·机器学习·机器人
code2cat10 小时前
Java进阶篇之AtomicLongFieldUpdater:把累计额度留在对象字段中
java·cas·并发编程
WeiXin_DZbishe10 小时前
基于springboot城市公交实时运营与调度系统-计算机毕设 附源码【课程设计】66173
java·vue.js·spring boot·后端·python·php·课程设计
泡茶喝茶写代码10 小时前
A股量化数据工程:从 REST 接口到策略信号(第 18 篇):放量缩量异动扫描
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
wewowilling11 小时前
认识微服务
java·运维·微服务·springcloud
代码什么用11 小时前
Java Web 7-10
java·servlet
蜗牛互联网12 小时前
GPT-6 与 Intelligent UI:从回答到可审计操作的产品迁移
java·人工智能·后端
SL_staff13 小时前
运维救火实录:钉钉考勤API变更引发工资计算异常,我们用JVS-Logic可视化逻辑引擎实现分钟级热修复
java·mysql·全栈
SunnyDays101113 小时前
Java 查找并高亮 Word 文字:精确查找及正则表达式模糊查找
java·查找文字·word 文档·高亮文字·正则匹配查找·模糊查找