gpt4 book ai didi

java - 使用 java .util.Map 和 java .util.LinkedHashMap?

转载 作者:行者123 更新时间:2023-12-02 10:50:22 29 4
gpt4 key购买 nike

我是 Java 新手(以及一般编程)。我正在开发一个个人项目,其中用户键入一个字符,然后将其转换为另一个字符。更具体地,用户将键入日语字符的罗马化形式,日语平假名等效物被输出到该日语字符。我目前正在使用两个单独的类:

RomaHiraCore.java

import java.util.*;

public class RomaHiraCore
{
public static void main(String[] args)
{
Table.initialize(); // Table.java needed!
Map<String, String> table = Table.getTable();
Scanner roma = new Scanner(System.in);
System.out.println("Romaji: ");
String romaji = roma.nextLine().toLowerCase();

if (table.containsKey(roma))
{
System.out.println(table.get(roma));
}
else
{
System.out.println("Please enter a valid character (e. g. a, ka)");
}
roma.close();
}
}

表.java

import java.util.*;
public class Table
{
private static Map<String, String> table = new LinkedHashMap<>();
public static Map<String, String> getTable()
{
return table;
}
public static void initialize()
{
// a - o
table.put("a", "あ");
table.put("i", "い");
table.put("u", "う");
table.put("e", "え");
table.put("o", "お");
// ka - ko
table.put("ka", "か");
table.put("ki", "き");
table.put("ku", "く");
table.put("ke", "け");
table.put("ko", "こ");
}
}

如果有人能指出我正确的方向,我将不胜感激。我试图仔细阅读文档,但我似乎无法理解它(也许我想太多了)。当我运行该程序时,它允许我输入一个字符;但是,它只会继续执行“else”语句,而不是扫描 Table.java 以查看输入是否与列出的任何值匹配。要么我忽略了某些东西,要么需要使用完全不同的方法。

最佳答案

在您的 map 中,您有字符串键,并且您提供的字符串位于 romaji 变量中。因此,您的 if 应该如下所示:if (table.containsKey(romaji))。更重要的是,在这种情况下,我认为使用 LinkedHashMap 不会给你任何东西,简单的 HashMap 会和 LinkedHashMap 一样好(甚至更好),因为你不需要维护字符的插入顺序。

关于java - 使用 java .util.Map 和 java .util.LinkedHashMap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52229928/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com