str = "92=" + strs[i] == null ? "" : strs[i] + "|";改成str = "92=" + (strs[i] == null ? "" : strs[i]) + "|";

解决方案 »

  1.   

    因为三元运算符 ? :的优先级比二元+运算符低,先运行相加运算,因此实际上上面的式子等于:
    str = (("92=" + strs[i]) == null) ? "" : strs[i] + "|";
    先运算了相加+,再判断相加后的字符串是否等于null。楼主莫非想表达:
    str = "92=" + ((strs[i] == null) ? "" : strs[i] + "|");这样括起来就先运行三元运算符。