有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Build if-else针对不正确输入的条件,不带分号

嗨,我有一些参数,我把它们传递到一个应用程序中,然后像这样构建一个散列图

if (text.length() > 0) {
            hashMap = new HashMap<String, Object>();
            String[] pairs = text.split(";");
            for (String pair : pairs) {
                String[] pairList = pair.split(",");
                String name = pairList[0];
                String value = pairList[1];
                hashMap.put(name, value);
            }
        }
        return hashMap;

传入的值如下所示

   String text = "Name,John;";
   String extraTest"Age,12;Location,USA;";

这将构建一张<

{Name=John, Age=12, Location=USA}>

文本1和文本2还有很多其他代码,还有很多if-else检查条件和测试用例

然而,我被困在我的一个条件下(测试用例失败)

例如,如果传入的值不正确,在extraText中没有分号,如

 String text = "Name,John;";
   String extraTest"Age,12Location,USA;";

它输出为

{Name=John,Age=12Location}>

不管怎样,我可以建立一个检查,而不是像上面这样的情况吗

这里有一个文本的检查,但我不确定如何扩展到我想做的事情

if (!text.isEmpty() && (!extraText.isEmpty())) {
            text= text+ ";";
            text= text.concat(extraText);

编辑:代码需要能够处理错误


共 (1) 个答案

  1. # 1 楼答案

    在我看来,您需要检查第二次拆分返回的数组的长度是否正好为2;决议如下: a) 如果缺少逗号,则该数组的长度为1 b) 如果缺少分号,则此数组的长度将为>;二,

    可能还需要检查每个“key”值(pairList[0])是否不是长度为零(空白)的字符串,也可能是值部分的最小长度

    您也可以考虑检查密钥的唯一性,因为您的方案(HasSeT)不允许重复。