需要帮助进行排序,处理选项卡分隔的文本文件

时间:2015-07-21 17:26:18

标签: java arrays list sorting arraylist

嗨我有一个文本文件(标签分隔)。

我想打开它,阅读它并过滤所需的列,就像我们在excel中一样。有人可以提供示例代码帮助。

我对如何进一步采取以下步骤的概念感到困惑。

  • 价格必须在处理前按DESC订单排序。
  • 始终,必须在输出中打印前两列。
  • 除前两列外,只需根据给定的输入打印所需的列。
  • 输入类似于(Mango / purchase / top50)。所以它应该只挑选前50"但是要购买"根据" Mango"以及它各自的前两列。

示例输入文件。

itemNumber  Price   Mango   Apple   Bannana
112201      purchased   need to plan    purchased
112202  55  yet to buy  yet to buy  purchased
112202  67  need to plan    purchased   purchased
112203  456 need to plan    need to plan    need to plan
112203  33  need to plan    yet to buy  need to plan
112204  456 need to plan    yet to buy  need to plan
112204      yet to buy  purchased   need to plan
112205  77  yet to buy  purchased   need to plan
112205  99  yet to buy  purchased   yet to buy
112206  0   yet to buy  purchased   yet to buy

代码不完整。 在这里,我试图将文件的标题添加到arraylist并将内容添加到另一个arraylist。然后尝试使用索引号比较它们。这种方式是否正确?

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

public class main {

    @SuppressWarnings({ "resource", "unused" })
    public static void main(String[] args) throws IOException {
        ZipFile zipFile = new ZipFile(
                "filename.tsv.zip");

        Enumeration<? extends ZipEntry> entries = zipFile.entries();

        while (entries.hasMoreElements()) {

            String fruit = "Mango";
            String mappingstatus = "purchased";

            // reading a file
            ZipEntry entry = entries.nextElement();
            InputStream stream = zipFile.getInputStream(entry);
            InputStreamReader read = new InputStreamReader(stream);
            BufferedReader br = new BufferedReader(read);

            // creating a new list
            List<String> heading = new ArrayList<String>();
            String[] a = br.readLine().split("\t");
            heading = Arrays.asList(a);

            List<String> content = new ArrayList<String>();

            String s;
            while ((s = br.readLine()) != null) {
                String[] b = br.readLine().split("\t");
                content = Arrays.asList(b);

            }

        }
    }
}

1 个答案:

答案 0 :(得分:0)

试试这个

--match

完成评论的部分,它必须有效。有关排序的更多参考资料:Sorting