2013-07-05 85 views
0

当我输入一个文件并尝试从中提取打印的字符串并双击时,我最终提取了文本本身的信息。我在我的while循环中插入了一个System.out.println来打印文件中的行,并且还打印了额外的文本信息行。我试图只从文件中获得书面文本,忽略了以下几行:从.txt文件中提取数据字符串

\ pard \ tx720 \ tx1440 \ tx2160 \ tx2880 \ tx3600 \ tx4320 \ tx5040 \ tx5760 \ tx6480 \ tx7200 \ tx7920 \ tx8640 \ ql \ qnatural \ pardirnatural“

我这样做是为了让我可以从文件中获取信息来制作字符串数组。 这个程序的目的是输入一个包含信息行的文件姓氏(字符串),名字(字符串),帐户余额(双)),分别提取每行,将每个行字符串放入数组列表中,对数组列表进行排序(按姓氏,然后按名字排序),然后输出文件,名称为output.txt,与新的排序行相关。行将被格式化为姓,名,然后帐户余额与一个sp每个之间的王牌。行数可以变化。

输入例(从.txt文件):

史密斯查尔斯200.000

阿伦德雷克5000.00

阿伦特雷300.00

Burbis Zeik 400.00

咱瑞克6000.00

输出示例(写入到文件output.txt的):

阿伦·德雷克5000.00

阿伦三分球300.00

Burbis Zeik 400.00

史密斯查尔斯200.000

咱里克6000.00

谢谢!

public static void main(String[] args) throws IOException { 
    Scanner fileName = new Scanner(System.in); 
    String file = fileName.next(); 
    String input; 
     Scanner fileinput = null; 
    // File inFile = new File("c:\\csc2310\\test.txt"); 
     File inFile = new File(file); 
    int i = 0; 
     try 
     { 
     fileinput = new Scanner(inFile); 
     while(fileinput.hasNext()) 
     { 

      i++; 
      System.out.println(i); 
      input = fileinput.nextLine(); 
      System.out.println(input); 
     } 
     fileinput.close(); 
     }catch(FileNotFoundException e) 
     { 
     System.out.println(e); 
     System.exit(1); 
     } 
     finally 
     { 
      fileinput.close(); 
     } 
} 
+5

请向我们显示您的输入和您的预期输出。 –

+0

我真的不明白你想做什么,但是,也许你的问题是,你正在使用'println'而不是'print'? – 2rs2ts

+0

你的问题很不清楚。请编辑您的帖子,并包含一些示例输入和输出。 –

回答

-1

您的字符串被宠坏了。 Java在阅读时会自动用\填充\字符。

因此你

"\\pard\\tx720\\tx1440\\tx2160\\tx2880\\tx3600\\tx4320\\tx5040\\tx5760\\tx6480\\tx7200\\tx7920\\tx8640\\ql\\qnatural\\pardirnatural" 

你也许能够唯一能做的可能做的是阅读的字符串作为字节数组,并删除字节相当于\的。检查是否有可能

0

该问题与TextEdit(Mac OS文本编辑器)保存.text文件的方式有关。我将相同的信息写入JEdit,并使用相同的扩展名保存,并删除了所有文本信息。感谢您的时间。