【问题标题】:Having trouble figuring out how to pass a file through my method无法弄清楚如何通过我的方法传递文件
【发布时间】:2020-06-12 21:59:12
【问题描述】:

在这个程序中,我正在处理的是通过我的名为 homophone 的方法读取文件,该方法读取文件并使用 hashmap 查找具有最多同音字的单词并返回最多同音字数的计数。我的问题是如何读取文件并通过 main 方法中的同音字方法将其传递。到目前为止,这是我的代码:

import java.security.KeyStore.Entry;
import java.util.*;
import java.io.*;

public class program2 {
    public static void main(String[] args) throws IOException {
       System.out.println(homophone());
    }

    public static int homophone(String file) throws  FileNotFoundException{
        HashMap<String,Integer> alike = new HashMap<>();
        Scanner input = new Scanner(new File(file));

        while(input.hasNext()) {
            String line = input.nextLine();
            String[] key = line.split("  ");
            if(alike.containsKey(key[1])) {
                alike.put(key[1],alike.get(key[1])+1);
            } else alike.put(key[1],alike.get(key[1]));
        }
        int max = 0;
        for(java.util.Map.Entry<String, Integer> e:alike.entrySet()) {
            if(e.getValue()>max) max = e.getValue();
        }
        return max;
    }
}


Example File Content:
A  AH0
A(1)  EY1
A'S  EY1 Z
A.  EY1
A.'S  EY1 Z
A.S  EY1 Z
A42128  EY1 F AO1 R T UW1 W AH1 N T UW1 EY1 T
AAA  T R IH2 P AH0 L EY1
AABERG  AA1 B ER0 G
AACHEN  AA1 K AH0 N
AACHENER  AA1 K AH0 N ER0
AAKER  AA1 K ER0
AALSETH  AA1 L S EH0 TH
AAMODT  AA1 M AH0 T
AANCOR  AA1 N K AO2 R
AARDEMA  AA0 R D EH1 M AH0
AARDVARK  AA1 R D V AA2 R K
AARON  EH1 R AH0 N
AARON'S  EH1 R AH0 N Z
AARONS  EH1 R AH0 N Z

【问题讨论】:

  • 可能你想要的是同音字(args[0]);
  • 您是否尝试过将文件作为文件类型而不是字符串传递给同音字方法? EX: public static int homophone(File file) throws FileNotFoundException{
  • @Llama 是的,不幸的是它只会产生错误:构造函数 File(file) 未定义。

标签: java loops file methods hashmap


【解决方案1】:

你需要像这样将一个字符串传递给你的同音字方法:

System.out.println(homophone("/folder/file.txt"));

或者

System.out.println(homophone(args[0]));

使用第二个,你需要编译和使用这样的系统命令行:

java program2 "/folder/file.txt"

【讨论】:

  • 啊,您的第一个选项成功了,但之后出现了更多问题。它最终没有给我任何输出。看来问题出在我的同音字方法上。代码似乎是有道理的,但它仍然存在某种错误
  • 我建议在您的问题中放置一个示例文件,以便人们对其进行测试。
猜你喜欢
  • 1970-01-01
  • 2016-05-10
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-24
相关资源
最近更新 更多