自己编写小程序背日语50音图

news2024/11/19 0:21:25

自己编写小程序来背日语50音图

  • 这是个啥
    • 直接上代码
    • 测试效果图

这是个啥

简而言之呢就是最近心血来潮打算自学日语,学日语自然就要先从50音图开始,就是下面这个:
在这里插入图片描述
可以看出来50音图横向是按照a i u e o这5个元音顺序,纵向按照a ka sa ta na ha ma ya ra wa 的顺序排布的。按顺序编排自然是为了方便记忆,但是也容易按照顺序能背出来,打乱顺序是否还能快速正确的念出来呢?那我可不可以写个小程序,随机给我出题,让我作答呢?
就类似这样:

mo的写法是:
も
すごい,正しい答!!!
く的读音是:
ku
すごい,正しい答!!!

所以就很简单写了一个小程序。由于我有点强迫症,像ya,ma两行不是完整的5个,所以我还是使用空格填充了,让两个数组看起来整齐一点,所以代码里有対空格的判断跳过。还有有些读音应该是si、ti,我写成了shi和chi,这个看大家自己喜欢吧,可以改。

目前支持以下几项功能:
1.支持输入出多少道题
2.可以根据字形,输入读音;也可以根据读音,输入字形
3.题是随机出的
4.回答错误会给出正确答案

后续大家有兴趣的可以迭代以下几个小功能:
1.目前随机是random函数直接随机的,没有加权重判断,可以增加按照已经出过的题答对答错的次数来增加权重因子,完成错题集的能力
2.日语键盘和英文键盘切换有点麻烦,目前出字形题和字音题是随机的,可以考虑先字形再字音,减少键盘切换的频率

直接上代码

package pri.roy.learn;

import java.util.*;

/**
 * @author roy
 */
public class FiftyCharacter {
    private static final List<String> PRONOUNCE_LIST = new ArrayList<>(Arrays.asList(
            "a", "i", "u", "e", "o",
            "ka","ki","ku","ke","ko",
            "sa","shi","su","se","so",
            "ta","chi","tu","te","to",
            "na","ni","nu","ne","no",
            "ha","hi","fu","he","ho",
            "ma","mi","mu","me","mo",
            "ya","  ","yu","  ","yo",
            "ra","ri","ru","re","ro",
            "wa","  ","  ","  ","wo",
            "n"
    ));
    private static final List<String> FONT_LIST = new ArrayList<>(Arrays.asList(
            "あ","い","う","え","お",
            "か","き","く","け","こ",
            "さ","し","す","せ","そ",
            "た","ち","つ","て","と",
            "な","み","ぬ","ね","の",
            "は","ひ","ふ","へ","ほ",
            "ま","み","む","め","も",
            "や","  ","ゆ","  ","よ",
            "ら","り","る","れ","ろ",
            "わ","  ","  ","  ","を",
            "ん"
    ));
    public static void main(String[] args) {
        Random random = new Random();
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入要挑战几道题?");
        int total = scan.nextInt();
        int n;
        for(int i = 0;i < total; i++){
            n = random.nextInt(PRONOUNCE_LIST.size());
            while("  ".equals(FONT_LIST.get(n))){
                n = random.nextInt(PRONOUNCE_LIST.size());
            }
            Boolean flag = random.nextBoolean();
            if(flag){
                System.out.println(i+1 + "." + FONT_LIST.get(n) + "的读音是:");
            }else{
                System.out.println(i+1 + "." + PRONOUNCE_LIST.get(n) + "的写法是:");
            }
            String pronounce = scan.next();
            if (flag){
                if(pronounce.equals(PRONOUNCE_LIST.get(n))){
                    System.out.println("すごい,正しい答!!!");
                }else{
                    System.out.println("回答ミス,正解は:" + PRONOUNCE_LIST.get(n));
                }
            }else{
                if(pronounce.equals(FONT_LIST.get(n))){
                    System.out.println("すごい,正しい答!!!");
                }else{
                    System.out.println("回答ミス,正解は:" + FONT_LIST.get(n));
                }
            }
        }
    }

}

测试效果图

在这里插入图片描述

---------------------------------------------------------------------------------我是分割线--------------------------------------------------------------------------
to be a better me, talk is cheap show me the code

版权所有,转载请注明原文链接。

文中有不妥或者错误的地方还望指出,以免误人子弟。如果觉得本文对你有所帮助不妨【点赞】一下!如果你有更好的建议,可以给我留言讨论,共同进步!

再次感谢您耐心的读完本篇文章。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/569420.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业门户网站有用吗?如何解决搭建难题?

随着智能化时代的逐渐成熟&#xff0c;信息产业如火朝天&#xff0c;越来越多的人对门户网站开始感兴趣&#xff0c;不少企业家也开始对门户网站的开发与建设跃跃欲试。门户网站&#xff0c;也就是一个应用框架&#xff0c;把各类应用系统、互联网资源、数据资源集合到一个信息…

80.确定和规划项目(步骤1和2)

你的第一个现实世界的项目 ● 你的第一份“工作”&#xff01;、 ● 你受雇为一家名为Omnifood的虚构公司设计并建立一个网站。 ● Omnifood是一家使用人工智能来创建和提供定制健康膳食计划的初创公司。 ● 他们为我们提供了网站的所有内容&#xff08;content.md&#xff09…

Redis 的 Rdb 或 Aof 持久化详解

文章结构 Redis 的持久化方案Rdb&#xff08;Redis Database) 方式设置持久化快照的条件持久化文件的存储目录Rdb 的优点Rdb 的缺点 Aof&#xff08;Append Only File&#xff09; 方式aop 的优点aop 的缺点 Redis 的持久化方案 Rdb&#xff08;Redis Database) 方式 Redis 默…

循环队列(C++)

循环队列是一种特殊的队列实现&#xff0c;在顺序队列的基础上进行了优化。通常&#xff0c;循环队列使用固定长度的数组来表示队列元素&#xff0c;头和尾指针挂钩形成循环的维度感知队列长度&#xff0c;并提高队列操作效率&#xff0c;因为这种结构需要的内存量比链表数据结…

论文翻译:DeepFilterNet

目录 摘要1. 引言2. DeepfilterNet2.1. 信号模型2.2. Deep Filtering2.3. 框架概述2.4. DNN模型2.5. 数据处理2.6. 损失函数 3. 实验3.1. 训练步骤3.2. 结果 4. 结论5. 参考文献 论文题目&#xff1a;DeepFilterNet: A Low Complexity Speech Enhancement Framework for Full-B…

MQTT与传统的HTTP协议对比,优势在哪里呢?

HTTP是应用最为广泛和流行的协议。但是MQTT在过去的几年里迅速取得了进展。在讨论物联网开发的时候&#xff0c;开发者必须在这两者之间作出选择。 MQTT集中于数据&#xff0c;而HTTP集中于文档。HTTP是一个用于客户端-服务器计算的请求-响应协议&#xff0c;它并非总是为移动设…

位图和布隆过滤器

目录 位图 布隆过滤器 位图 假设有1000 万个范围在1~ 1亿的整数。如何快速查找某个整数是否出现在这1000万个整数中? 当然&#xff0c;这个问题仍然可以使用哈希表来解决。不过&#xff0c;针对这个“特殊”问题&#xff0c;我们可以使用一种比较“特殊”的哈希表&#xff…

阿里云手动创建Nginx-Ingress

阿里云相关文档 1、在ACK管理控制台点击如下 应用市场–>筛选(以ack-ingress-nginx-v1为例)–>点击安装–>一键部署–>自己定义集群、命名空间以及ingress名称 1.20以下集群选中ack-ingress-nginx。 1.20及以上集群选中ack-ingress-nginx-v1。 应用市场 筛选…

Linux学习笔记 --- Linux基础命令Part2

2.9 查找命令(which、find&#xff09; 目标&#xff1a;1. 掌握使用which命令查找命令的程序文件 2. 掌握使用find命令查找指定文件 which命令 我们在前面学习的Linux命令&#xff0c;其实它们的本体就是一个个的二进制可执行程序。 和Windows系统中的.exe文件&#x…

六级备考24天|CET-6|翻译技巧3|翻译2020年6月真题红楼梦|逻辑问题|理解背诵|20:50~22:30

目录 一、逻辑重建 例句1 例句2 例句3 二、定语和状语 定语的翻译原则 什么是状语&#xff1f; 状语位置 状语的基本形式 三、主动和被动 四、无主句 五、并列和连动 连动 六、作题步骤 七、红楼梦 PRACTICE ANSWER​ 时态问题 一、逻辑重建 试比较&#xff1a; 1. 下雨了…

c++中文路径中文文件读写

踩了坑&#xff0c;两个地方需要注意&#xff0c;否则就会乱码或无法找到文件 &#xff08;1&#xff09;采用utf-8格式&#xff0c;对cpp文件进行编码&#xff0c;用utf-8的方式对内容尽心高度写&#xff0c;方法是std::setlocale(LC_ALL, ".UTF-8"); &#xff08…

dvwa靶场通关(二)

第二关&#xff1a;Command Injection&#xff08;命令注入&#xff09; 什么是命令注入&#xff1a; 命令注入就是在需要输入数据的地方输入了恶意代码&#xff0c;而且系统并没有对其进行过滤或者其他处理导致恶意代码也被执行&#xff0c;最终导致数据泄露或者正常数据被破…

软件测试基础知识整理(八)- 软件缺陷

目录 一、软件缺陷 1.1 缺陷定义 1.2 缺陷判定标准 1.3 软件缺陷产生的原因 1.4 软件缺陷产生的根源 1.5 软件缺陷信息 1.5.1 缺陷状态 1.5.2 缺陷严重程度 1.5.3 缺陷优先级 1.6 缺陷报告模板 1.7 缺陷报告注意事项 1.8 缺陷跟踪流程 1.9 缺陷数据分析关注的问题 …

chatgpt赋能python:Pythonsearchsorted:用于搜索排序数组的快速工具

Python searchsorted&#xff1a;用于搜索排序数组的快速工具 在Python编程中&#xff0c;有时需要在有序数组中快速查找值的位置。Python searchsorted工具提供了一种快速而高效的方法&#xff0c;可用于在已排序的数组中搜索值的位置。在本文中&#xff0c;将深入探讨Python…

实验二:熟悉常用的HDFS操作

实验环境: (1)操作系统:Linux(建议 Ubuntu 16.04 或 Ubuntu 18.04)。 (2)Hadoop 版本:3.1.3。 (3)JDK 版本:1.8。 (4)Java IDE: Eclipse。 实验内容与完成情况: (1)编程实现以下功能,并利用Hadoop提供的Shell命令完成相同任务。 ①向HDFS中上传任意文本文件,如果指定的文…

简介KettlePack

目录 &#x1f3c6;1、本机环境&#xff1a; &#x1f3c6;2、虚拟机环境&#xff1a; &#x1f3c6;3、安装MySQL &#x1f3c6;4、安装kettlePack ⭐️4.1、Windows版安装 ⭐️4.2、Linux安装 ⭐️4.3、docker安装 简介&#xff1a; 今日工作中的ETL脚本使用了从晶的…

【通义千问】什么是通义千问,如何免费获得内测和使用方法。

什么是通义千问&#xff0c;如何免费获得内测和使用方法。 什么是通义千问怎么获得内测资格申请方法有两种第一种直接点击申请体验第二种直接点击使用邀请码 通义千问邀请码怎么获得参与社区活动邀请好友关注通义千问微信公众号参加通义千问线上课程向通义千问官方提问 通义千问…

【C++】4.jsoncpp库:jsoncpp库安装与使用入门

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍jsoncpp的使用。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习知识&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更新不迷路&am…

Apache Kafka - ConsumerInterceptor 实战(2)

文章目录 Pre思路示例配置文件自定义 拦截器使用测试 小结 Pre Apache Kafka - ConsumerInterceptor 实战 (1) 用代码的方式实现了ConsumerInterceptor , 接下来我们用 配置的方式来实现一下 。 思路 如何找配置类 KafkaProperties 有些属性是很明显的有的&#xff0c;其他没…

STM32单片机(二)STM32环境搭建

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…