【问题标题】:Putting words from an input file into canonical form将输入文件中的单词转换为规范形式
【发布时间】:2018-02-10 02:53:54
【问题描述】:

我正在尝试编写一个代码,它从文本文件中获取单词,并将每个单词按规范顺序排列,然后在运行时将原始单词打印在其规范形式旁边,如下所示:

编码 cdgino 游戏aegms

到目前为止,我只有这个:

import java.util.*;
import java.io.*;

public class CanonicalWords
{
    public static void main(String[] args) throws Exception 
    {
        if (args.length<1)
        {
            System.out.println("You must provide an input file.");
            system.exit(0);
        }   
        String infileName = args[0];

        BufferedRead infile = new BufferedReader(new FileReader(infileName));

        while(infile.ready())
        {
            //arraylist.add(infile.readLine())
        }

        //sort arraylist


        for (int i=0;i<arrayList.size;i++)
        {

        }

    }
    static String canonical(String word)
    {
        char[] canonicalWord = word.toCharArray();
        Arrays.sort(canonicalWord);
        String cWord = new String(canonicalWord);
        return cWord; 
    }
}

如果您需要澄清我所写的任何内容,请告诉我。我不知道如何把这些词变成规范的形式。

现在没有真正的输出,它甚至没有编译。我只是很困惑。如果有人可以帮助我理解什么是基本公式(如果有的话)将单词转换为规范形式并执行我上面所说的那将是很棒的,但我知道我的要求可能会作为一个有点混乱。谢谢。

【问题讨论】:

  • 了解您遇到的问题会很有帮助。也许是一个错误。也许是预期的输出与您实际得到的输出。

标签: java arrays arraylist file-io canonical-form


【解决方案1】:

首先,从这段代码的外观来看:

BufferedRead infile = new BufferedReader(new FileReader(infileName));

应该是这样的:

BufferedReader infile = new BufferedReader(new FileReader(infileName));

注意你的拼写是否正确;变量名,它们是数据类型!


另外需要注意的是,方法:

static String canonical(String word)

没有被调用。尝试在 main 方法中访问它。

【讨论】:

  • 谢谢你我什至没有注意到,我猜我写的时候没有输入完整的单词!
  • 你明白了,这是许多程序员遇到的错误。看看你的最后一个方法,它是在任何地方调用的吗?
猜你喜欢
  • 1970-01-01
  • 2013-05-20
  • 2012-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
  • 1970-01-01
相关资源
最近更新 更多