Java基础训练--输入中文输出相应的英文,单词字典dic.txt应做一个文本文件读入

本文介绍了一个使用Java实现的命令窗口程序,该程序能够通过读取外部字典文件实现中文词汇到英文词汇的转换功能。当用户输入中文词汇时,程序会搜索字典并输出对应的英文词汇。如果输入的词汇不在字典中,则会提示用户未找到该词汇。此外,程序还提供了退出功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编程实现一个命令窗程序,使得:

  • 输入“你”则在屏上回显“you”。
  • 输入“书”则在屏上回显“Book”。
  • 输入“中”则在屏上回显“middle”。
  • 输入“中国”则在屏上回显“China”。
  • …要能输入至少100个词。如输入没有记录的词则如下:
  • 输入“东东”则在屏上回显“查不到该词”。
  • 输入ByeBye则退出程序.
  • (提示: 单词字典应做一个文本文件读入,其中每行为:<中文字词><对应英文> )
  • 如:字典文件 dic.txt内容是
  • <我>
  • <你>
  • <中国>
  • ……

代码

package day01;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;

public class Demo06 {
    public static void main(String[] args) throws IOException {
        Scanner scan = new Scanner(System.in);
        while(true) {
            System.out.println("请输入一个词:");
            String str = scan.nextLine();
            FileReader fr = new FileReader("dic.txt");//创建一个新的 FileReader,给予File读。
            BufferedReader br = new BufferedReader(fr);//从一个字符输入流中读取文本
            String s = null;//定义一个字符串
            boolean b = false;//判断字典中是否含有输入的词
            while((s = br.readLine()) != null) {//readLine()读一行文本
                //substring(int beginIndex, int endIndex) 
                //返回一个字符串的子串,相当于剪切,从beginIndex开始到endIndex结束(含头不含尾)
                //indexOf(String str) 
                //返回指数在这个字符串指定的子字符串中第一个出现的下标。
                String china = s.substring(s.indexOf("<")+1, s.indexOf(">"));
                //lastIndexOf(String str) 
                //返回指数在这个字符串的指定子字符串中最后出现的下标。
                String english = s.substring(s.lastIndexOf("<")+1,s.lastIndexOf(">"));
                if(str.equals(china)) {//存在
                    System.out.println(english);
                    b = true;
                }
            }
            if(str.equals("ByeBye")) {//判断是否输入的为"ByeBye"
                System.out.println("程序退出!");
                System.exit(0);//终止当前正在运行的java虚拟机
            }
            if(!b) {//查不到
                System.out.println("查不到该词!");
            }
        }
    }
}

dic.txt内容以及位置

这里写图片描述

这里写图片描述

运行结果

这里写图片描述

要解决这个问题,可以使用Java文件处理和字符串处理功能。 首先,需要通过Java文件输入流读取文本文件input.txt中的内容。可以使用BufferedReader类来实现该功能。然后,逐行读取文件内容,将每行内容存储在一个字符串变量中。 接下来,需要将每行内容拆解为单词。可以使用Java的字符串分割方法split(),通过指定空格作为分隔符,将每行内容拆分为一个单词数组。 然后,创建一个集合(例如ArrayList)来存储所有的单词。遍历每个单词,使用add()方法将其添加到集合中。 最后,对集合进行排序。可以使用Collections类的sort()方法对集合进行排序,按照默认的字母顺序对单词进行排序。 最后,遍历排序后的集合,将单词逐个输出,得到按字典顺序排列的单词列表。 以下是一个简单的Java代码示例: import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class SortWords { public static void main(String[] args) { String filePath = "input.txt"; List<String> words = new ArrayList<>(); try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) { String line; while ((line = reader.readLine()) != null) { String[] splittedWords = line.split(" "); for (String word : splittedWords) { words.add(word); } } } catch (IOException e) { e.printStackTrace(); } Collections.sort(words); for (String word : words) { System.out.println(word); } } } 请注意,以上示例代码仅为演示目的,未输入验证和异常处理等边界情况处理,请在实际使用中根据需要进行完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值