HIT-软件构造-Lab1-P1遇到的一些问题
序言
刚接触软件构造这门课,遇到了不少的问题,于是就写下来这篇篇博客:一者,是经历了在网上找各种问题的解答摧残,好多博客都是看起来很好,但实际操作起来,真的是坑爹;再者博客在期末占5分,为了学分绩,也得写写。这篇文章主要是记录了我遇到的问题以及解决的方法,希望可以让后面的学弟学妹节约点时间
幻方的读入
https://www.cnblogs.com/lfzw20/p/6961543.htm
这是我用到的博客,有用的是下面的代码:
public void fileRead() throws Exception {
File file = new File("D:\\test.txt");//定义一个file对象,用来初始化FileReader
FileReader reader = new FileReader(file);//定义一个fileReader对象,用来初始化BufferedReader
BufferedReader bReader = new BufferedReader(reader);//new一个BufferedReader对象,将文件内容读取到缓存
StringBuilder sb = new StringBuilder();//定义一个字符串缓存,将字符串存放缓存中
String s = "";
while ((s =bReader.readLine()) != null) {//逐行读取文件内容,不读取换行符和末尾的空格
sb.append(s + "\n");//将读取的字符串添加换行符后累加存放在缓存中
System.out.println(s);
}
bReader.close();
String str = sb.toString();
System.out.println(str );
}<br>遇到问题:<br>while循环中,直接使用(bReader.readLine()!=null),循环体内用s=bReader.readLine()赋值,<br>输出发现跳行获取的,每调用一次bReader.readLine()就会读取一行,所以造成跳行显示。
以上代码除去输出的部分,我们最终可以得到一个String类型的str,来点更直接的,更针对我们这道实验题的:
File file = new File(fileName);
if (! file.exists()) {
System.out.println("File doesn't exist!");
return false;
}
FileReader reader = new FileReader(file);
BufferedReader bReader = new BufferedReader(reader);
StringBuilder sb = new StringBuilder();
String s;
while ((s =bReader.readLine()) != null) {
sb.append(s + "\n");
}
bReader.close();
String str = sb.toString();
其中fileName是以String类型输入的文件的路径(后面我会提到相对路径的问题),之后对str进行任何操作就回到了我们熟悉的领域,在此就不再论述了。
二维List的建立
Java比C语言有一个特别方便的地方就是List,他让你不用再去预估数组的大小(以前写C的时候,经常为了数组不崩掉,建一个超大的int[][]或char[][],心疼电脑空间啊)。现在有了List,直接声明:
ArrayList<Integer> array = new ArrayList<Integer>();
问题在于,二维的怎么建立,按照C的逻辑,我很机智的写了如下代码:
ArrayList<Integer><Integer> array = new ArrayList<Integer><Integer>();
死得老惨了,正确的写法是:
ArrayList<ArrayList<Integer>> array = new ArrayList<ArrayList<Integer>>();
之后对List的
array.add();
array.cotains();
array.remove();
array.get();
这都是最基本的了,就不再赘述了。
注意:ArrayList<ArrayList>.get(i)得到的是ArrayList,之后再get一遍:ArrayList<ArrayList>.get(i).get(i)这才是Integer。将Integer换成String同样好使。
将文件导入工程并看起来有层次感
从老师给的网址下载下来要求的东西之后,最简单的想法就是用鼠标,粘贴复制、新建文件夹,但是你会发现你的eclipse右边的目录毫无反应,这时你需要
(有谁会带着鼠标的截屏,用手机拍得好丑)
更新一下目录即可
之后你发现,加入的文件是这样的:
是不是很难看,于是经过千辛万苦,找到这张图
选择Hierarchical就完美了(千万别去改build path!!!)
Build Path的问题
如果你不幸地改了build path,不要慌,这两张图会帮到你: