高手帮帮忙,一道笔试题
本帖最后由 xiaanming 于 2012-12-12 10:46:58 编辑
a.b.c.d
a.c.d.z
a.c.c
b.a
转换成如下格式的文本:
root
|---a
|---b
|---c
|---d
|---c
|---d
|---z
|---c
|---c
|---b
|---a
下面是我写的部分代码
import java.io.BufferedReader;
import java.io.FileInputStream;
import
java.io.FileNotFoundException;
import
java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Test {
static String s = null;
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("D:/javaProject/dir.txt")));
while((s = br.readLine()) != null){
String[] arr = s.split("\\.");
for(int i = 0; i < arr.length; i++){
String ou = "";
for(int p = 0; p < i; p++){
ou += "\t";
}
ou += "|---" + arr[i];
System.out.println(ou);
}
}
if(br != null){
br.close();
br = null;
}
} catch (
FileNotFoundException e) {
System.out.println("文件读取错误!");
} catch (
IOException e) {
e.printStackTrace();
}
}
}
我打印的结果是:
|---http
|---ting
|---baidu
|---com
|---song
|---946428
|---http
|---ting
|---baidu
|---com
|---song
|---1670643
|---http
|---ting
|---baidu
|---com
|---song
|---1400921
|---http
|---ting
|---baidu
|---com
|---song
|---1263029
|---http
|---ting
|---baidu
|---com
|---song
|---1137358
需要的效果是:
|---http
|---ting
|---baidu
|---com
|---song
|---946428
|---1137358
|---1263029
|---946428
------解决方案--------------------这只是针对给出的例子,还是有点弊端,就是相同的头元素必须顺序放在一起。不能随即存放,
得稍加改动下