-2
   public void readTemplateInput() {
        BufferedReader inputfile = null;       
        try {
            File file = new File("D:\\inputparam.txt");
            inputfile = new BufferedReader(new FileReader(file));
            String line = inputfile.readLine(); 
            if(line!=null){
            StringTokenizer reporttokens = new StringTokenizer(line,"-");
            while (reporttokens.hasMoreTokens()) {                
                 String tokens= reporttokens.nextToken().toString();  
                 reportslist=new ArrayList();
                 reportslist.add(tokens);
                 getReportTokens(reportslist);
              }           
            }
    } catch (FileNotFoundException ex) {
            Logger.getLogger(InputTemplateData.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(InputTemplateData.class.getName()).log(Level.SEVERE, null, ex);
        }    
        finally {
            try {
                inputfile.close();
            } catch (IOException ex) {
                Logger.getLogger(InputTemplateData.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

    public void getReportTokens(List reportslist) {
        List reports=reportslist;

}

在这里,我需要获取第一个列表,并且需要将该列表分配给一个字符串并需要标记化。此过程重复,如将 list2 分配给一个字符串并对其进行标记化,以及 list3...... 根据 .txt 文件依此类推. 我不知道要解决这个问题。任何机构都会帮助提供正确的代码。

4

1 回答 1

1

这是您修改后使用的代码split(),但我不知道您的数据实际上是如何格式化的,以及应该如何解析它..代码将拆分所有行以及我在您的示例中可以看到的所有定界符在一个最终列表中..

public ArrayList<String> readTemplateInput()
{

    BufferedReader inputfile = null;
    ArrayList<String> finalList = null;

    try
    {
        File file = new File("D:\\inputparam.txt");
        inputfile = new BufferedReader(new FileReader(file));
        String line = inputfile.readLine();

            finalList = new ArrayList<String> ();

        if(line!=null)
        {
            String[] listA = line.split("-");

            ArrayList<String> listB = new ArrayList<String>();

            for (String str : listA)
            {
                listB.addAll(str.split("#").asList());
            }

            ArrayList<String> listC = new ArrayList<String>();

            for (String str : listB)
            {
                listC.addAll(str.split("$").asList());
            }

            ArrayList<String> listD = new ArrayList<String>();

            for (String str : listC)
            {
                listD.addAll(str.split("\(|\)").asList());
            }

            ArrayList<String> listE = new ArrayList<String>();

            for (String str : listD)
            {
                listE.addAll(str.split(",").asList());
            }

            // filter

            for (String str : listE)
            {
                str.replaceAll("\s+"," ");

            }

            for (int i=0; i<listE.size(); i++)
            {
                if(listE.get(i).equals(" ") || listE.get(i).equals(""))
                {
                    listE.remove(i);
                    i--;
                }
            }

                    finalList.addAll(listE);
        }

    }
    catch (FileNotFoundException ex)
    {
        Logger.getLogger(InputTemplateData.class.getName()).log(Level.SEVERE, null, ex);
    }
    catch (IOException ex)
    {
        Logger.getLogger(InputTemplateData.class.getName()).log(Level.SEVERE, null, ex);
    }
    finally
    {
        try
        {
            inputfile.close();
        }
        catch (IOException ex)
        {
            Logger.getLogger(InputTemplateData.class.getName()).log(Level.SEVERE, null, ex);
        }

            return finalList;
    }

}
于 2013-10-30T10:16:29.773 回答