就是将字符数以某种规则拆分
一般这个函数我们用来处理一个字段里包含了多条数据的场景,当然数据要以空格,逗号,或者其他明显的分隔符隔开(不明显也行,但没啥)
首先,看一下该函数的参数
public String[] split(String regex, int limit)
- regex -- 正则表达式分隔符。
- limit -- 分割的份数。
上例子:
String str = "one two three, four";
String[] tokens = str.split(" ");
for (String s: tokens)
System.out.println(s);
结果显而易见就是以空格为分隔符截取
也可以再加一个截取份数的参数,自己试一试
下面这个例子是做项目写的,简单说一下 其中将查到的数据放在一个list里面,其中controlareas字段是含有多个数据的字段,然后将其分割放到数组str里,遍历数组,在对该字段的单一数据进行业务操作。
IPage<ElAlarmControlVehicle> list = elAlarmControlVehicleService.page(Condition.getPage(query), queryWrapper);
if (!list.getRecords().isEmpty()) {
for (int i = 0; i < list.getRecords().size(); i++) {
String strAreas = "";
if (!"".equals(list.getRecords().get(i).getControlAreas()) && null != list.getRecords().get(i).getControlAreas()) {
String[] str = list.getRecords().get(i).getControlAreas().split(",");
if (str.length > 0) {
for (String s : str) {
strAreas += elCommInfoService.getCommInfo(s) + ",";
log.info(strAreas);
}
//substring这个方法截取的字符串从参数一开始,到字符串索引的参数二 - 1结束,即截取的字符串不包括参数二这个索引对应的字符,所以参数二的最大值为整个字符串的长度,所以使用这个方法的时候需要特别注意容易发生字符串截取越界的问题
list.getRecords().get(i).setControlAreas(strAreas.substring(0, strAreas.length() - 1));
}
}
}
}