我将尝试尽可能具体,但是如果这还不够完善,请不要沮丧,这是我的第一篇文章.
我正在创建一个拼字游戏评分类,它包含两个文件:一个字母值txt文件和一个包含一些单词的txt文件,我们稍后将根据其包含的字母来确定每个单词的值,就像在Scrabble游戏中一样.
字母值文本文件将具有26行,每行具有随机的字母,空格和与该行中的所述字母相对应的某个字母值整数.像这样:
A 1
1号
F 3
.
.
.
Z 15
我知道如何读取每一行并将其存储,但是我不知道如何设置它以便它匹配文件中的每个字母及其对应的数字值.我几乎在考虑做两个数组…任何帮助,感激不尽.如果您需要更多信息,请与我们联系.
解决方法:
您可以使用地图查找点值.然后,您不必担心将字符转换为索引等.
Map points = new HashMap<>();
Pattern p = Pattern.compile("([A-Z])\\s+(\\d+)");
for (String line : Files.readAllLines(Paths.get("points.txt"))) {
Matcher m = p.matcher(line);
if (!m.matches())
throw new IllegalArgumentException(line);
points.put((int) m.group(1).charAt(0), Integer.valueOf(m.group(2)));
}
然后,您可以使用点图做一些有趣的事情,如下所示:
int score = "HELLO".chars().map(points::get).sum();
当然,由于每个字母的位置等,您需要考虑奖金,但这可能有助于您入门.
标签:file-io,bufferedreader,arrays,java
来源: https://codeday.me/bug/20191027/1943418.html