Android-映射:键中带有空格的getValue

时间:2019-01-25 09:46:30

标签: android hashmap whitespace

我有一张地图Object value = dd.get("22 "); 。键在字符串的末尾包含正确值后的空格。所以当我使用

value = dd.get("22");

Toast.makeText(getContext(), value.toString() , Toast.LENGTH_LONG).show()
带有空格或不带空格的

返回null。如果我使用

if (wfStepExDetails.isPresent()) {
            this.postInterruptActionsExecutor.takeActionAfterWFInterrupted(wfStepExDetails.get(), this.pAccId, interrupts, this.workflowStepDefinition);
        } 

因为该值为空,它使我的应用程序崩溃。

enter image description here

1 个答案:

答案 0 :(得分:0)

我给出了以下示例,只是为了向您展示问题不是空格:

Map<String, Float> myMap = new HashMap<>();
myMap.put("1", 1f);
myMap.put("1 ", 2f);

Float f1 = myMap.get("1"); // f1: 1.0
Float f2 = myMap.get("1 "); // f2: 2.0

不出所料,我没有得到任何空值。因此问题一定在其他地方。我的猜测:地图中没有您所要求的值。

为防止您的应用崩溃,我建议您检查该值是否为null,如果为空,则将其替换为其他值。

Toast.makeText(getContext(), value == null ? "-" : value.toString() , Toast.LENGTH_LONG).show()