【发布时间】:2017-03-16 00:43:08
【问题描述】:
我正在为我的 Java 课做家庭作业。我的导师对要使用的方法调用和变量有一些非常明确的要求。其中一个要求是编写一个名为 public void initalizeSymbols(String inputFileName) 的方法,该方法从输入文件中读取字母表中的每个字母及其等效的摩尔斯电码。我试图确保将变量传递给我们必须使用的数组列表,但无法获取我的 System.out.println(input.toString());输出任何让我相信我的变量没有被保存到数组列表中的东西。 arrayList 将存储 a-z, 1-0, ? / 以及它们的所有等效摩尔斯电码符号,它们由 ... 和 --- 组成。所以它将同时存储字符串和整数。任何帮助,将不胜感激。如果格式不正确,我深表歉意,因为这是我第一次在这里发帖。这是我所拥有的:
public class MorseCodeTranslator
{
private String sentence;
private String translation;
private ArrayList<MorseCodeSymbol> morseCodeSymbols;
Scanner scannerIn;
public void initializeSymbols(String inputFileName)
{
String inputLine = "";
String letter = "";
String symbol = "";
try
{
scannerIn = new Scanner(new File(inputFileName));
while (scannerIn.hasNext())
{
inputLine = scannerIn.nextLine();
letter = inputLine.substring(0, inputLine.indexOf(' '));
symbol = inputLine.substring(inputLine.indexOf(' ') + 1);
MorseCodeSymbol input = new MorseCodeSymbol(letter, symbol);
morseCodeSymbols.add(input);
System.out.println(input.toString()); //this doesnt work
//System.out.println(letter + symbol); //this works
}
//MorseCodeSymbol input = new MorseCodeSymbol(" "," ");
//morseCodeSymbols.add(input);
}
catch (Exception ex)
{
}
//displayMorse();
}
}
public class MorseCodeSymbol
{
private String letter;
private String symbol;
public MorseCodeSymbol()
{
setLetter("");
setSymbol("");
}
public MorseCodeSymbol(String letter, String symbol)
{
this.letter = letter;
this.symbol = symbol;
}
public String getLetter()
{
return letter;
}
public String getSymbol()
{
return symbol;
}
public void setLetter(String letter)
{
this.letter = letter;
}
public void setSymbol(String symbol)
{
this.symbol = symbol;
}
public String toString()
{
return String.format("Letter: %s Symbol: %s", letter, symbol);
}
}
【问题讨论】:
-
您的文件是什么样的?
inputFileName设置好了吗?为什么不从printlning 开始inputLine看看会输出什么?带点complementary debugging techniques,一个人去很危险。 -
System.out.println(input.toString()); //this doesn't work定义“不起作用”。什么都不打印?打印错误的东西?抛出异常? -
By 不起作用,我想说控制台什么也没输出。当我使用局部变量时,它将循环并打印整个输入文件,所以我知道输入文件正在被读取。由于 System.out.println(input.toString()) 绝对没有返回任何内容,我担心 arrayList 没有存储输入文件中的值。
-
你的片段来自哪个班级?它是
MorseCodeSymbol类的一部分吗? -
不,它在一个名为 MorseCodeTranslator 的类中。这些是讲师设置的预定义课程,我们必须使用从他那里克隆的代码。在 MorseCodeTranslator 内部,是变量 private ArrayList
morseCodeSymbols;我们必须使用它。
标签: java arraylist methods file-io