split出现得问题

说一个大家可能马虎(也可能不知道,比如我)出现得问题,

我后台获取到一个字符串,想以逗号分割成数组,大家都知道可以str.split(","),然而问题来了,

var str = '江苏出生,梅派,代表作霸王别姬';

var arr = str.split(','); console.log(arr)却是 ['江苏出生,梅派,代表作霸王别姬'];

仔细看才发现,后台返回得字符串得逗号是圆角逗号,我自己写得是半角逗号,不知道你们中招没--!

转载于:https://www.cnblogs.com/znLam/p/8631201.html

### Java `split` 方法避免生成空字符串的最佳实践 当处理可能包含多个连续分隔符或结尾处有多余分隔符的情况时,可以通过设置 `limit` 参数为负数来确保不会丢失任何部分。然而,为了完全避免生成空字符串,在使用 `split()` 函数前应先检查输入字符串的内容。 对于希望去除所有可能出现的多余空白项(即由连续分隔符产生的空串),可以在调用 `split()` 后过滤掉这些元素: ```java String input = "a,,b,c,,,d"; // 使用正则表达式匹配逗号作为分隔符,并通过限定最大切割次数为 -1 来保留所有的分割片段 String[] result = Arrays.stream(input.split(",", -1)) .filter(s -> !s.trim().isEmpty()) .toArray(String[]::new); ``` 此代码段会移除因连续分隔符而形成的空字符串[^2]。另外一种做法是在实际执行 `split()` 前检测并清理原始字符串中的冗余字符,比如去掉开头和结尾位置不必要的分隔符号以及压缩中间重复出现的部分。 如果目标仅仅是防止由于字符串末尾存在分隔符而导致的结果集中含有额外的空字符串,则可以直接利用带有适当 `limit` 参数值的单参数版本 `split()` 或者双参数版 `split(regex, limit)` ,其中 `limit=0` 表示尽可能多地进行分割并且忽略最后面可能出现的一个或几个空字段[^3]。 综上所述,最佳实践中推荐的方式是结合预处理阶段对源数据做必要的清洗工作加上合理配置 `split()` 的参数选项以达到预期效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值