這個作業屬于哪個課程 | 軟體工程 (福州大學至誠學院 - 計算機工程系) |
---|---|
這個作業要求在哪裡 | 第二次個人程式設計作業 |
這個作業的目标 | 添加Issues模闆、用分支管理來送出代碼、使用有意義的Commit資訊 |
作業正文 | 如下 |
其他參考文獻 |
設定issue模闆
為倉庫配置議題模闆
如何使用 Issue 管理軟體項目?
主要參考這兩個文章
自己倉庫的commit送出資訊截圖
送出issue
1.自提自改
添加了一個Test類和testFile.txt
Test類讀取testFile.txt中的測試資料,測試程式的執行情況
public class Test {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new FileReader("testFile.txt"));
String str;
int i = 1;
while ((str = in.readLine()) != null) {
if (str.equals("")) {
System.out.println();
} else if (str.substring(0, 1).equals("*")) {
System.out.println("正确輸出---->" + str.substring(1));
} else if (str.substring(0, 1).equals("-")) {
System.out.println("#### " + str.substring(1) + " ####");
} else {
System.err.println(i + ":" + str);
Utils.runMain(str);
i++;
}
}
}
}
2.OMG
部落格位址:部落格
倉庫位址:GitHub倉庫
3.211706135
4.Destiny*
5.repcjw
6.ANNOMING
暫時還沒有發現這個大佬的代碼有什麼問題
不過我從他的代碼中學到了一個比較巧妙的分割字元串方法
分割字元串,大多數人想到的是:
String [] strArr = str.split(" ");
這樣固然能分割字元串,但是如果字元中間有多餘的空格,空格也可能被加入split傳回的數組,這可能會導緻程式出現問題
這位大佬用正則來處理,這樣就能不受多餘空格的影響
String[] str = input.split("\\s+");
7.梁梁梁+
8.xiaoming123456
9.隼s
寫到這裡我發現了一個問題,好像沒有其他寫Java的朋友了
10.自提自改?
感謝 ANNOMING ,發現了我代碼中非法輸入導緻的數組越界問題
對于不同方法的輸入進行了更嚴格的判斷,確定資料合法,不會出現越界
public static void assignInt(String str) {
String[] strArr = str.trim().split("\\s+");
// 短路 是以不會越界
if (strArr.length != 4 || !strArr[2].equals("等于")) {
throw new DemoException("文法有錯,請檢查文法");
}
setVar(strArr[1], toNum(strArr[3]));
}
對于數組的使用,先對下标進行判斷再使用
if (strArr.length == 2) {
String varStr = strArr[1];
if (isVar(varStr)) {
System.out.println(toChStr(getVar(varStr)));
return;
} else if (!varStr.contains("“") && !varStr.contains("”")) {
throw new DemoException("變量:" + varStr + " 未定義,請定義變量");
}
}
String[] strArr = str.trim().split("\\s+");
if (strArr.length != 3) {
throw new DemoException("文法有錯,請檢查文法");
}
String leftStr = strArr[0];
String rightStr = strArr[2];
String middle = strArr[1];
回複issue
來自 ANNOMING