未完成乞丐版 Args

用户头像
escray
关注
发布于: 2020 年 05 月 09 日
未完成乞丐版 Args

2020-05-08



看了一遍 Args 的题目要求,其实我的心里是有一点恐惧的,因为我不知道怎么做。



老师给出的时间盒大概是 90 分钟,我也打算自己先努力一下,然后再看答案。



其实上一次卡住的地方很奇怪,一个是我不知道如何获取 main 函数的参数,现在看起来似乎不用考虑,或者说这个不是重点;第二个地方就是昨天提到的“如何导入 JUnit5 ”。



今天做了几件大事:



  • 将 IntelliJ IDEA 所使用的 JDK 升级到了 14

  • 将 Gradle 升级到了 6.4

  • 将 JUnit5 导入了 IntelliJ IDEA



可惜的这些都不算学分。



今天的进展并不如人意,还不如前天,只能发出一个未完成的乞丐版。



// ArgsTest
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class ArgsTest {
    String argsStr3 = "-l -p 8080 -d /usr/logs";
    String argsStr2 = "-p 8080 -d /usr/logs";
    Args argsThree = new Args(argsStr3);
    Args argsTwo = new Args(argsStr2);
    @Test
    void should_return_args_count() {
        assertEquals(3, argsThree.argsCount());
        assertEquals(2, argsTwo.argsCount());
    }
    @Test
    void should_return_args_pair() {
        assertEquals(3, argsThree.pair.size());
        assertEquals(2, argsTwo.pair.size());
    }
    @Test
    void should_return_default_true_if_input_l_but_no_value() {
        assertEquals(true, argsThree.get("log"));
    }
}
// Args.java
import java.util.HashMap;
public class Args {
    private String argsStr;
    public HashMap<String, String> pair;
    public Args(String argsStr) {
        pair = new HashMap<>();
        this.argsStr = argsStr;
        getArgsPair();
    }
    public int argsCount() {
        return pair.size();
    }
    public void getArgsPair() {
        String[] argsList = argsStr.split(" ");
        for (int i = 0; i < argsList.length; i++) {
            if (argsList[i].startsWith("-")) {
                if (!argsList[i+1].startsWith("-")) {
                    pair.put(argsList[i], argsList[i + 1]);
                    i += 1;
                } else {
                    pair.put(argsList[i], "");
                }
            }
        }
    }
    public boolean get(String item) {
        System.out.println("PAIR" + pair);
        if (item.equals("log")) {
            if (pair.containsKey("-l") && pair.get("-l").isEmpty()) {
                return true;
            }
        }
        return false;
    }
}



发布于: 2020 年 05 月 09 日 阅读数: 33
用户头像

escray

关注

Let's Go 2017.11.19 加入

大龄程序员

评论

发布
暂无评论
未完成乞丐版 Args