RandomWord.java
package com.gary.util.japanese;
import java.util.Random;
/**
* 随机,帮助记忆五十音图
* @author gary
*
*/
public class RandomWord {
/**
* 随机平假名
* @return
*/
public static String randomHiranagana(){
String word = null;
try{
word = JapaneseUtil.hiranagana_words[new Random().nextInt(12)][new Random().nextInt(6)];
if(JapaneseUtil.emptyStr.equals(word)){
word = randomHiranagana();
}
}catch(ArrayIndexOutOfBoundsException e){
word = randomHiranagana();
}
return word;
}
/**
* 随机片假名
* @return
*/
public static String randomKatakana(){
String word = null;
try{
word = JapaneseUtil.katakana_words[new Random().nextInt(12)][new Random().nextInt(6)];
if(JapaneseUtil.emptyStr.equals(word)){
word = randomKatakana();
}
}catch(ArrayIndexOutOfBoundsException e){
word = randomKatakana();
}
return word;
}
/**
* 随机罗马音
* @return
*/
public static String randomSound(){
String sound = null;
try{
sound = JapaneseUtil.sounds[new Random().nextInt(12)][new Random().nextInt(6)];
if(JapaneseUtil.emptyStr.equals(sound)){
sound = randomSound();
}
}catch(ArrayIndexOutOfBoundsException e){
sound = randomSound();
}
return sound;
}
/**
* 随机平假名+片假名
* @return
*/
public static String randomAllWords(){
int switchWords = new Random().nextInt(2);
if(switchWords == 0){
return randomHiranagana();
}else{
return randomKatakana();
}
}
/**
* 随机全部
* @return
*/
public static String randomAll(){
int flag = new Random().nextInt(3);
if(flag == 0){
return randomHiranagana();
}else if(flag == 1){
return randomKatakana();
}else{
return randomSound();
}
}
}
RandomWords.java
package com.gary.util.japanese;
import java.io.File;
import java.util.List;
import java.util.Map;
import java.util.Random;
import com.gary.util.jxl.JXLUtil;
/**
* 背单词辅助工具
* @author gary
*
*/
public class RandomWords {
private static List<Map<String,String>> data;
public static Random random;
static{
data = new JXLUtil().getImportData(new File("words.xls"), "japanese");
random = new Random();
}
/**
* 随机取出日语
* @return
*/
public static String randomJapanese(){
return ((Map<String,String>)data.get(random.nextInt(data.size()))).get("japanese");
}
/**
* 随机取出汉语
* @return
*/
public static String randomChinese(){
return ((Map<String,String>)data.get(random.nextInt(data.size()))).get("chinese");
}
/**
* 随机取出单词
* @return
*/
public static String randomAll(){
int flag = random.nextInt(2);
if(flag == 0){
return randomJapanese();
}else{
return randomChinese();
}
}
}
JXLUtil.java
package com.gary.util.jxl;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jxl.Sheet;
import jxl.Workbook;
/**
* 读取Excel
* @author gary
*
*/
public class JXLUtil {
public List<Map<String,String>> getImportData(File file, String target){
List<Map<String, String>> data = new ArrayList<Map<String, String>>();
try {
Workbook book = Workbook.getWorkbook(file);
Sheet sheet = book.getSheet(0);
int rows = sheet.getRows();
int columns = sheet.getColumns();
boolean hasText = false;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++)
if (sheet.getCell(j, i).getContents() != "") {
hasText = true;
break;
}
if (hasText) {
Map<String, String> temp = new HashMap<String, String>();
String excelKey = "japanese,chinese";
String[] excelKeyArray = excelKey.split(",");
for(int k = 0 ; k < excelKeyArray.length ; k++){
temp.put(excelKeyArray[k], sheet.getCell(k, i).getContents());
}
data.add(temp);
}
}
book.close();
} catch (Exception e) {
e.printStackTrace();
}
return data;
}
}
分享到:
相关推荐
从标签“源码 工具”来看,我们可以推断这个压缩包可能包含了该日语学习工具的源代码和可执行文件。这对于开发者来说非常有价值,他们可以研究源代码,了解其工作原理,甚至进行二次开发或定制化修改。同时,这也是...
《日语50音学习.zip》是一款基于Visual Studio 2019开发,采用C#编程语言,并结合Winform界面和SQLite数据库技术的辅助学习工具,专为学习日语50音图(平假名与片假名)的用户设计。这款软件能够提供丰富的学习资源...
本篇将深入剖析一款名为“日语词典”的软件源码,帮助读者了解其背后的技术实现,同时提供对日语学习软件开发的见解。 该软件的核心功能是提供2万个词汇的词库,涵盖了丰富的日语词汇,这对于初学者和进阶者来说都...
【标题】"日语连连看.rar"所涉及的知识点主要集中在日语学习和电脑游戏开发两个领域。首先,从标题来看,"日语连连看"是一款以日语为主题的休闲游戏,这种类型的游戏通常用于寓教于乐,帮助用户在轻松愉快的环境中...
总的来说,这个项目结合了Java编程、GUI设计以及JSP技术,提供了一个实用的学习工具,帮助日语初学者以互动的方式掌握基础的发音。它不仅展示了Java作为编程语言的强大能力,也为教育领域提供了创新的教学方法。同时...
在计算机使用中,有时我们需要输入非拉丁字符,例如日语中的假名。本文将详细介绍如何在Windows操作系统中安装和管理日语输入法以及字体。...了解这些基本操作,将有助于你在学习和工作中更加流畅地使用日语。
这个系列的第二部分继续深入到软件领域的日语词汇中,为读者提供更复杂的术语和概念。无论是程序员、系统管理员还是对日本技术文化感兴趣的个人,这个资料都能帮助他们更好地理解和沟通与软件相关的日语信息。 ...
GUI Spy工具则用于查看和分析应用程序中的GUI对象,以帮助创建和维护GUI Map。 课程中,学生还会学习到如何使用RapidTest Script Wizard,这是一个辅助工具,能够帮助初学者快速学习对象识别和测试脚本的生成。GUI ...
《自制小辞典》项目是基于Kanji2Kana技术的一个实用工具,它主要针对的是日语学习者。Kanji2Kana是一种转换工具,能够帮助用户将汉字(Kanji)自动转化为对应的假名(Kana),这对于理解和学习日语中的汉字发音非常...
标题中的“日本语片假名转换器japanhr”指的是一个专门用于将日本语中的当用汉字转换...总的来说,"日本语片假名转换器japanhr"是一个方便的学习辅助工具,对于任何希望掌握日语发音的人来说,都是一个值得尝试的资源。
"oboete:日语课的趣味游戏"是一个基于C#编程语言开发的日语学习应用程序,旨在通过游戏化的方式提升学习者对日语的记忆和理解。在这个项目中,开发者利用C#的强大功能创建了一个互动的学习环境,使用户能够在娱乐中...
官方多国语言版意味着C#编程工具和服务不仅限于英文,还包括其他多种语言,如简体中文、繁体中文、法语、德语、日语等。这使得全球各地的开发者都能无障碍地学习和使用C#,无论他们的母语是什么。在设置中,你可以...
综上所述,"trans_tool.zip" 提供了一个专门针对日语学习者的翻译工具,其背后的技术栈包括Python编程、wxPython GUI框架以及利用OpenSSL进行数据安全处理。通过网络爬虫技术,工具可能能够持续更新其翻译资源,为...
在学习计算机日语时,理解这些词汇对于在日企或与日本进行技术交流时至关重要。 1. **アイコン図標**: 表示计算机程序、文件或功能的小图形,通常出现在屏幕界面上,方便用户快速识别和操作。 2. **モード**: 指...
### Win32学习笔记 #### Windows编程基础 在Windows编程中,我们首先需要了解的是基本的概念和编程模型。Windows提供了一套丰富的API(应用程序接口),这些API被封装在不同的动态链接库(DLL)中,例如`kernel32....
在IT领域,掌握专业的日语词汇对于理解和交流技术问题至关重要。以下是一些从提供的日语计算机专业单词列表中提取的关键概念及其详细解释: 1. **パラメーターの受け渡し (パラメーターの受け渡し)**: 在编程中,...
【VB6-阿杰日文录入系统】是一个由个人开发者独立设计的日文输入软件,它专为学习和提高日文录入速度而创建。VB6,全称Visual Basic ...无论是对于日语学习者还是VB6开发者,都能从中获取有价值的学习资源和实践经验。
Aglet,源自日语“鞋钉”的发音,是一种轻量级的Java应用程序,主要用于移动设备上的客户端应用开发。它是一个基于Java Micro Edition (JME) 或者早期的Java 2 Platform, Micro Edition (J2ME) 的框架,设计用于创建...
这个项目可能包含了词汇查询、解释、发音以及例句等功能,旨在为用户提供一个方便的日语学习工具。 首先,你需要了解Java的基础语法和面向对象编程概念。Java是一种广泛使用的编程语言,其特点是跨平台、安全性高和...
总结起来,这个开源的“日文虚拟键盘”项目提供了一个方便的日语输入工具,尤其是对于那些在非日语环境下工作或学习的人。它的开源性质意味着用户可以参与开发,对其进行个性化定制,同时享受到社区的持续支持和更新...