java开发中list数组拆分及list数组转换为string,数组追加值

java开发中,如果涉及到判断配置表中某个字段是否包含某个值,如果包含,就往list中追加一个值怎么做呢,比如统计高一(5)班级里报名篮球的人员,因为一个人可以报名多个球类,所以一个人的兴趣那个字段可能有多个球类信息,假设1-篮球,2-足球
数据库存储的结果如下:

实体类如下:

@Data
@Entity
@TableName("INFO_TABLE")
public class InfoTable{
	@TableField("NAME")
	private String name;
	@TableField("INTEREST")
	private String interest;
	@TableField("AGE")
	private String age;
	@TableField("DEL_FLAG")	
	private String delFlag;
	@TableField("CLASS")	
	private String class;	
}

Mapper如下:

public interface InfoMapper {
//0105代表高一(5)班级,DEL_FLAG等于1代表数据有效
 @Select({" select name,interest from INFO_TABLE where class ='0105' and DEL_FLAG = '1' "})	
 List<InfoTable> getNameList();

}

具体代码实现如下:

@Slf4j
public class testDemo{
	@Autowired InfoMapper infoMapper;
	private 
	public String getInterestLists(String interest){
		List<String> names = new ArrayList<>();
		if(StringUtils.isNotBlank(interest)){
			List<InfoTable>  nameList =  infoMapper.getNameList();
			if(StringUtils.isNotBlank(nameList.toString())){
				for (InfoTable :infoTableList : nameList){
					String name = infoTableList.getName();
					String interest = infoTableList.getInterest();
					String[] interestList = StringUtils.split(interest,"|");
					boolean interestFlag = Arrays.asList(interestList).contains(interest);
					if(interestFlag){
						names.add(name);
						}
					}
			}else{
				log.error("INFO_TABLE表中没有查询到记录");
			}
			}else{
				log.error("interest值为空!");
			}
			//将nameList两侧的[]去掉,同时将逗号转为分号
			
	String result = nameList.toString().split("\\[")[1].split("]")[0];
	return (StringUtils.replace(result,",",";")).replace(" ","");
	}
}

调用的时候,直接 String a = getInterestLists(“1”),就得到了所有报名篮球的名字,结果形如:张三;李四;王五

上述代码用到list转string,见本人另外一篇文章详述,原文链接:
https://blog.youkuaiyun.com/qq_34274094/article/details/140514601

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaoEchoJava

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值