【问题标题】:android: Can method Split return a null value?android:方法Split可以返回空值吗?
【发布时间】:2015-07-18 03:21:49
【问题描述】:

阅读此代码时遇到问题。

为什么编码器会确定allProvinces = null

if(!TextUtils.isEmpty(response)){
    String [] allProvinces = response.split(",");
    /* how should I check whether allProvinces is null or not? 
     * it means the method "split" can possibly return a null value?
     */
    if( allProvinces != null && allProvinces.length > 0){    
        for(String p :allProvinces) {
            String [] array = p.split("//|");
            Province province = new Province();
            province.setProvinceName(array [0]);
            province.setProvinceCode(array[1]);
            weatherDb.saveProvince(province);
        }
    }
}

【问题讨论】:

    标签: android android-layout android-fragments android-intent android-activity


    【解决方案1】:

    方法Split可以返回空值吗?

    split 函数总是返回包含至少一个元素的String[]

    你得到一个大小为 1 的数组来保存原始值:

    "-"

    字符分割方法
    Input          Output
    -----          ------
    ABCD-XYZ      {"ABCD", "XYZ"}
    QWERT         {"QWERT"}
    ZXC-q-        {"ZXC","q"}
    ZXC-q- -      {"ZXC","q",""}
    

    为什么编码器确定 allProvinces =null

    检查null是没用的,因为 split 函数总是返回包含至少一个元素的String[]

    【讨论】:

    • 谢谢,我可以从您的回答中得出结论,“if( allProvinces != null && allProvinces.length > 0) {} ”可以删除吗?
    • 欢迎@SamuelChan。是的,你可以
    【解决方案2】:

    代码 if( allProvinces != null && allProvinces.length > 0){ 是检查 allProvinces 不等于 null。 字符串拆分最小值为一。我们不能返回拆分空字符串。

    【讨论】:

    • 我知道你的意思,但我的问题是“拆分”如何返回一个空字符串数组?如果不能,我为什么要确定它的价值
    • 不需要返回空字符串。因为您正在检查是否为空。您可以添加else 语句以返回空值。
    • 非常感谢您解决我的问题。干杯!
    猜你喜欢
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    相关资源
    最近更新 更多