繁体   English   中英

从.txt文件中提取数据字符串

[英]Extracting Strings of Data from a .txt file

当我输入文件并尝试提取打印的字符串并从中将其加倍时,最终我会提取文本本身的信息。 我将System.out.println插入到while循环中以打印文件中的行,并且还打印了额外的文本信息行。 我试图仅从文件中获取书面文本,而忽略如下所示的行:

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

我这样做是为了可以从文件中获取信息,并使用它们来创建字符串数组。 该程序的目的是输入包含信息行(姓(字符串),名(字符串),帐户余额(双))的文件,分别提取每一行,将每一行字符串放入数组列表中,进行排序数组列表(按姓氏,然后按名),然后输出名称为output.txt并带有新排序行的文件。 这些行将被格式化为姓,名,然后是帐户余额,并且每行之间都有一个空格。 行数可以变化。

输入示例(来自.txt文件):

史密斯·查尔斯200.000

艾伦·德雷克5000.00

艾伦·特雷300.00

布尔比斯Zeik 400.00

赞瑞克6000.00

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

艾伦·德雷克5000.00

艾伦·特雷300.00

布尔比斯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();
      }
 }

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

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

因此你得到

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

您唯一可能做的就是将字符串读取为字节数组,并删除等效于\\的字节。 检查是否有可能

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM