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 楼答案
在我看来,您需要检查第二次拆分返回的数组的长度是否正好为2;决议如下: a) 如果缺少逗号,则该数组的长度为1 b) 如果缺少分号,则此数组的长度将为>;二,
可能还需要检查每个“key”值(
pairList[0]
)是否不是长度为零(空白)的字符串,也可能是值部分的最小长度您也可以考虑检查密钥的唯一性,因为您的方案(HasSeT)不允许重复。