小编Lui*_*hil的帖子

将Java ArrayList内容逐行打印到控制台

我是Java编程的新手,这实际上是我需要解决的一个问题的一部分:我正在逐行将一个文件的内容作为String读入ArrayList以供以后处理.我需要程序打印出来以在单独的行上控制ArrayList的内容,但运行编译文件后的输出打印文件的第一行,然后在下一行打印第一行和第二行,然后打印该计划的第一,第二和第三行.

我对这个应该如何工作的理解是程序将采用我的文件,FileReader和BufferedReader将把文件中的文本行作为字符串抓取,然后将它们放在ArrayList中,每个String位于不同的位置. ArrayList对不对?有人可以告诉我在while循环中哪里出错了吗?谢谢!

码:

public class ArrayListDemo

{
    public static void main (String[]args)
    {
    try
    {
        ArrayList<String> demo= new ArrayList <String>();
        FileReader fr= new FileReader("hi.tpl");
        BufferedReader reader= new BufferedReader(fr);
        String line;
        while ((line=reader.readLine()) !=null)
            {
            //Add to ArrayList
            demo.add(line);
            System.out.println(demo);
            }

        reader.close();
    }catch (Exception e)
        {
            System.out.println("Error: "+e.getMessage());
            System.exit(0);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

获得的输出:

cat
cat, rat
cat, rat, hat
Run Code Online (Sandbox Code Playgroud)

预期产量:

cat
rat
hat
Run Code Online (Sandbox Code Playgroud)

java arraylist

4
推荐指数
2
解决办法
4万
查看次数

Java哈希表错误 - 标识符预期和非法类型的启动?

这应该是具有多个关键字的简单解释器的一部分,我将其制作成不同的类.该程序应该遍历ArrayList,将字符串标记化并将它们解析为KEYWORD +指令.我正在使用散列映射将所有这些关键字映射到具有类的接口,其中进行其余的处理.目前正在测试其中一个关键字类,但是当我尝试编译时,编译器会抛出"标识符预期"和"非法启动类型"消息.抛出所有错误消息的行是第18行.代码在哪里变得难以理解?我无法分辨,因为我之前从未使用过HashTable.谢谢您的帮助!

import java.util.*;

public class StringSplit
{
interface Directive //Map keywords to an interface
{
    public void execute (String line);
}
    abstract class endStatement implements Directive
    {
        public void execute(String line, HashMap DirectiveHash)
        {   
            System.out.print("TPL finished OK [" + " x lines processed]");
            System.exit(0);
        }
    }
    private Map<String, Directive> DirectiveHash= new HashMap<String, Directive>();
    DirectiveHash.put("END", new endStatement());

    public static void main (String[]args)
    {
        List <String> myString= new ArrayList<String>();
        myString.add(new String("# A TPL HELLO WORLD PROGRAM"));
        myString.add(new String("STRING myString"));
        myString.add(new String("INTEGER …
Run Code Online (Sandbox Code Playgroud)

java hashtable

0
推荐指数
1
解决办法
4490
查看次数

Java args命令行参数 - 尝试将文件名作为args中的参数传递给方法但不起作用

我对Java很新.目前尝试将args []中给出的文件名传递给此FileReader,但是当我编译它时,它说找不到指定的文件.如果我硬编码文件名,它工作正常.这应该是怎么回事?

public class StringSplit
{

   public void parseCommands
   {
     try
     {
       //not working, why? It works if I do FileReader fr= new FileReader("hi.tpl").
       FileReader fr= new FileReader(args);

     }

 public static void main (String[] args)// args holds the filename to be given to FileReader
 {
  if (args.length==0)
   {
     System.out.println("Error: Bad command or filename. Syntax: java [filename.tpl]);
     System.exit(0)
   }
   StringSplit ss= new StringSplit();
   ss.parseCommands();
  }

}
Run Code Online (Sandbox Code Playgroud)

java command-line-arguments

0
推荐指数
1
解决办法
1万
查看次数