【问题标题】:How to Input Text From User Input File for Parsing - Java如何从用户输入文件中输入文本进行解析 - Java
【发布时间】:2011-09-09 17:04:18
【问题描述】:

我已经学习 Java 几个月了,我遇到了一个需要帮助的问题。我有一个用户输入文件,其中包含以下表单中的许多条目:

>Item1 Description
DILDEQCLKGACQGTSVVIHTA
>Item2 Description
DILDEQCLKGACQGTSVVIHTASVIDVRNAV
>Item3 Description
AEKAGTS
>Item4 Description
RNAVPRHESAW

此文件中最多可能有 100 个项目。这是一个基本的文本文件,大写的序列会因项目而异。我认为其他阅读器/解析器依赖“>”来开始下一个条目。我想我也应该这样做。

我的目标是从包含相同>ItemX Description 行的用户输入文件中生成一个新文件,但需要颠倒字母顺序。我尝试过使用 Scanner、FileInputStream、DataInputStream 和 BufferedReader。不确定执行此操作的最佳方法和最有效的方法是什么。

我应该如何加载这些数据以便最容易地反转字符串?输入数据的方法似乎有很多,我似乎越来越迷失......我有一个似乎可以工作的字符串反向器,所以我现在的目标是加载这些数据然后转换为字符串用于反转。

提前感谢您的帮助。

注意 - 以下是这些条目之一的样子:

>41_BOVIN (Q9N179) Protein 4.1 (Band 4.1) (P4.1) (4.1R) MHCKVSLLDDTVYECVVEKHAKGQDLLKRVCEHLNLLEEDYFGLAIWDNATSKTWLDSAK EIKKQVRGVPWNFTFNVKFYPPDPAQLTEDITRYYLCLQLRQDIVSGRLPCSFATLALLG SYTIQSELGDYDPELHGADYVSDFKLAPNQTKELEEKVMELHKSYRSMTPAQADLEFLEN AKKLSMYGVDLHKAKDLEGVDIILGVCSSGLLVYKEKLRINRFPWPKVLKISYKRSSFFI KIRPGEQEQYESTIGFKLPSYRAAKKLWKVCVEHHTFFRLTSTDTIPKSKFLALGSKFRY SGRTQAQTRQASALIDRPAPHFERTASKRASRSLDGAAAVEPADRTPRPTSAPAIAPSPA AEGGVPGAPVKKAQKETVQVEVKQEEAPPEDAEPEPSEAWKKKRERLDGENIYIRHSNLM LEDLDKSQEEIKKHHASISELKKNFMESVPEPRPSEWDKRLSTHSPFRTLNINGQIPTGE GPPLVKTQTVTISDTANAVKSEIPTKDVPIVHTETKTITYEAAQTDDSNGDLDPGVLLTA QTITSETTSSTTTTQITKTVKGGISETRIEKRIVITGDADIDHDQVLVQAIKEAKEQHPD

所以我需要将第 2 行到第 12 行变成一个大字符串,然后将其反转。

【问题讨论】:

    标签: string user-input text-parsing


    【解决方案1】:

    不要重新发明轮子! Apache 公共库为您解决了许多常见的编程问题。您可以使用以下两个类来解决您的问题:

    List<String> lines = org.apache.commons.FileUtils.readLines(file);
    

    它为您完成所有 I/O 工作并将文件的行作为列表读取。 然后您可以使用另一个 apache commons 类进行反转:

    org.apache.commons.lang.StringUtils.reverse(str);
    

    如果你使用 maven,这里是依赖项:

    对于 FileUtils 类(以及许多其他类):

    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.0.1</version>
    </dependency>
    

    对于 StringUtils 类(以及许多其他类):

    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
    </dependency>
    

    【讨论】:

    • 这很好。 +1 为新程序员提供了很好的资源!我现在正在阅读这些包裹。我看到我必须克服的一个问题是,我讨论的这些“条目”不一定像上面那样。一个条目可能有标题行,然后是需要反转的 10 行序列。有关这些条目之一的示例,请参见原始帖子。
    猜你喜欢
    • 1970-01-01
    • 2017-02-10
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多