【问题标题】:Extracting Strings of Data from a .txt file从 .txt 文件中提取数据字符串
【发布时间】:2013-07-03 21:26:01
【问题描述】:

当我输入一个文件并尝试从中提取打印的字符串并加倍时,我最终会提取文本本身的信息。我将 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

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();
      }
 }

【问题讨论】:

  • 请向我们展示您的输入和预期输出。
  • 我真的不明白您要做什么,但是,也许您的问题是您使用的是println 而不是print
  • 你的问题很不清楚。请编辑您的帖子并包含一些示例输入和输出。
  • 我刚刚更新了我的帖子。希望这将有助于澄清我的问题是什么。谢谢大家

标签: java file-io java.util.scanner


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你的字符串被破坏了。 Java 在读取它时会自动用 \ 填充 \ 字符。

    因此你得到

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

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

    【讨论】:

      猜你喜欢
      • 2013-01-10
      • 1970-01-01
      • 1970-01-01
      • 2021-07-07
      • 1970-01-01
      • 2021-04-22
      • 2022-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多