• 第二次个人编程作业-互改代码


    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系)
    这个作业要求在哪里 第二次个人编程作业
    这个作业的目标 添加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

    博客地址:博客

    仓库地址:GitHub仓库

    4.Destiny*

    博客地址:博客

    仓库地址:GitHub仓库

    5.repcjw

    博客地址:博客

    仓库地址:GitHub仓库

    6.ANNOMING

    博客地址:博客

    仓库地址:GitHub仓库

    暂时还没有发现这个大佬的代码有什么问题
    不过我从他的代码中学到了一个比较巧妙的分割字符串方法
    分割字符串,大多数人想到的是:

    String [] strArr = str.split(" ");
    

    这样固然能分割字符串,但是如果字符中间有多余的空格,空格也可能被加入split返回的数组,这可能会导致程序出现问题
    这位大佬用正则来处理,这样就能不受多余空格的影响

    String[] str = input.split("\s+");
    

    7.梁梁梁+

    博客地址:博客

    仓库地址:GitHub仓库

    8.xiaoming123456

    博客地址:博客

    仓库地址:GitHub仓库

    9.隼s

    博客地址:博客

    仓库地址:GitHub仓库


    写到这里我发现了一个问题,好像没有其他写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

  • 相关阅读:
    S03E01 蓝牙操作
    GET与POST方法
    Http请求头与响应头
    HttpClient初步
    Http
    深度为H的满k叉树
    html5-css选择器
    html5-css的使用强制优先级
    html5-样式表的使用-初步
    html5-css的引入
  • 原文地址:https://www.cnblogs.com/aaronlinv/p/12293557.html
Copyright © 2020-2023  润新知