【发布时间】:2011-10-01 16:26:16
【问题描述】:
我一直在编写 Perl 和 Python 代码,这次我得到了一个用 Java 编写代码的任务。所以我对用Java处理数据不是很熟悉。
我的任务涉及有一个输入文件,我需要在其中检查依赖关系,然后输出具有传递依赖关系的那些。以下更清晰的想法:
输入文件:
A: B C
B: C E
C: G
D: A
输出文件:
A: B C E G
B: C E G
C: G
D: A B C E G
到目前为止,这就是我所得到的(分离第一个和第二个令牌):
import java.util.StringTokenizer;
import java.io.*;
public class TestDependency {
public static void main(String[] args) {
try{
FileInputStream fstream = new FileInputStream("input-file");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
while ((strLine = br.readLine()) != null) {
StringTokenizer items = new StringTokenizer(strLine, ":");
System.out.println("I: " + items.nextToken().trim());
StringTokenizer depn = new StringTokenizer(items.nextToken().trim(), " ");
while(depn.hasMoreTokens()) {
System.out.println( "D: " + depn.nextToken().trim() );
}
}
} catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
}
任何帮助表示赞赏。我可以想象 Perl 或 Python 可以轻松处理这个问题。只需用Java实现即可。
【问题讨论】:
-
你能用python描述一下你的算法吗?
-
这是作业吗?在我看来,这就像 DB 理论 :>.
-
不能用
String.split()方法吗? -
你为什么不试试 Groovy 呢?
-
是的,这是作业。排序。爱好相关。是的,我似乎无法再了解它的算法了。
标签: java dependencies stringtokenizer