【发布时间】:2015-07-21 17:26:17
【问题描述】:
您好,我有一个文本文件(制表符分隔)。
我想打开它,阅读它并过滤所需的列,就像我们在 excel 中所做的那样。有人可以提供示例代码吗?
我对如何进一步执行以下步骤的概念持保留态度。
- 价格必须在处理前使用 DESC 顺序排序。
- 始终,必须在输出中打印前两列。
- 除了前两列之外,仅需要根据给定的输入打印所需的列。
- 输入将类似于 (Mango/purchased/top50)。因此它应该只选择“Mango”下的前 50 个“尚未购买”及其各自的前两列。
示例输入文件。
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);
}
}
}
}
【问题讨论】:
-
你试过什么?我们很乐意帮助解决小问题和错误,但您需要将您拥有的代码放在上面。我们不会为你做作业。
-
@mdewitt - 粘贴了我的代码。
-
我不明白预期的结果
-
@RobertoTellezIbarra - 如果输入是 (Mango/need to plan/top50) 那么结果应该像下面的
itemNumber Price Mango 112204 456 need to plan 112206 456 need to plan 112203 67 need to plan 112205 33 need to plan -
我建议您使用 Excel 文件而不是制表符分隔的文本文件,并使用 Apache POI
标签: java arrays list sorting arraylist