split(".")无效,length为0,加贴一个VersionName比较更新

在处理字符串分隔时遇到split('.')返回空数组的问题,参考某博客发现是正则匹配需转义导致的,需在点号前加反斜杠避免特殊含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:http://blog.youkuaiyun.com/yayayaya__/article/details/37689861
由于是通过正则匹配,需要转义

 /**
     * Splits this string using the supplied {@code regularExpression}.
     * See {@link Pattern#split(CharSequence, int)} for an explanation of {@code limit}.
     * See {@link Pattern} for regular expression syntax.
     *
     * <p>If the same regular expression is to be used for multiple operations, it may be more
     * efficient to reuse a compiled {@code Pattern}.
     *
     * @throws NullPointerException if {@code regularExpression ==  null}
     * @throws PatternSyntaxException
     *             if the syntax of the supplied regular expression is not
     *             valid.
     * @since 1.4
     */
    public String[] split(String regularExpression, int limit) {
        String[] result = java.util.regex.Splitter.fastSplit(regularExpression, this, limit);
        return result != null ? result : **Pattern.compile(regularExpression)**.split(this, limit);
    }
 /**
     * 比较版本是否更新
     *
     * @param version
     * @return true :需要更新 ; false:不需要,大于=当前版本
     */
    private boolean compareVersionNeedUpdate(String version) {

        String versionName = DeviceUtils.getVersionName(Thinksns.getApplication());
        if (version.equals(versionName)) return false;
        final String[] appVersion = versionName.split("\\.");
        final String[] compareVersion = version.split("\\.");
        int minLength = Math.min(appVersion.length, compareVersion.length);
        for (int i = 0; i < minLength; i++) {
            if (Integer.parseInt(compareVersion[i]) > Integer.parseInt(appVersion[i])) {
                return true;
            }
        }
        if (compareVersion.length > appVersion.length && version.startsWith(versionName)) {
            return true;
        }
        return false;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值