If Else语句返回错误值:播放列表类型判断异常求助
修复播放列表类型判断的问题
嘿,我一眼就发现你代码里的两个关键问题啦,这就是为什么主播放列表URL会被误判的原因:
1. 字符串比较用错了方式
Java里的==运算符是用来比较对象引用地址的,而不是字符串的实际内容。哪怕两个字符串内容完全一样,只要它们是不同的对象,==就会返回false。你应该用equals()方法来比较字符串内容:
if (mediaRecord.equals(lastRecord)) {
如果想忽略大小写的话,还可以用equalsIgnoreCase()来适配更多场景。
2. 固定索引截取字符串太脆弱
你用substring(399)来截取字符串,这完全依赖于输入URL的长度刚好是某个固定值——万一URL的前缀长度发生变化(比如域名调整、参数增减),这行代码就会截取到错误的内容,甚至抛出IndexOutOfBoundsException。
更稳妥的做法是直接判断字符串是否以目标后缀结尾,用endsWith()方法,连截取步骤都能省去:
// 直接判断返回的URL是否以主播放列表标识结尾 if (output.endsWith("gear4/prog_index.m3u8")) { System.out.println("This is a master playlist"); } else { System.out.println("This is a simple playlist"); }
这样修改之后,不管URL前缀怎么变,只要结尾是你指定的主播放列表标识,就能准确判断,同时也彻底解决了字符串比较的错误。
内容的提问来源于stack exchange,提问作者Dash
相关产品推荐
相关产品推荐

