标签:file-io bufferedreader arrays java
我将尝试尽可能具体,但是如果这还不够完善,请不要沮丧,这是我的第一篇文章.
我正在创建一个拼字游戏评分类,它包含两个文件:一个字母值txt文件和一个包含一些单词的txt文件,我们稍后将根据其包含的字母来确定每个单词的值,就像在Scrabble游戏中一样.
字母值文本文件将具有26行,每行具有随机的字母,空格和与该行中的所述字母相对应的某个字母值整数.像这样:
A 1
1号
F 3
.
.
.
Z 15
我知道如何读取每一行并将其存储,但是我不知道如何设置它以便它匹配文件中的每个字母及其对应的数字值.我几乎在考虑做两个数组…任何帮助,感激不尽.如果您需要更多信息,请与我们联系.
解决方法:
您可以使用地图查找点值.然后,您不必担心将字符转换为索引等.
Map<Integer, Integer> 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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。