问题:数据库中保存了一批用csv格式存储的数据,在使用的时候,需要判断str是否包含在csv中。
这个问题有2个解决方案:一种是采用字符串包含判断,另一种是通过把csv数据拆分为String[]数组,再逐个判断
实现的代码如下:
package com.bytrees.utils;
import org.apache.commons.lang3.StringUtils;
public class CsvUtils {
/**
* 判断字符串是否在CSV格式的数据内
* @param needle 要检查的数据
* @param haystack CSV格式数据
* @return
*/
public static boolean isInCsv(final String needle, final String haystack) {
//判断needle或haystack是否为空
if (StringUtils.isEmpty(haystack) || StringUtils.isEmpty(needle)) {
return false;
}
//判断CSV中是否仅有一个元素
//如果仅有一个元素,直接判断是否相等
if (haystack.indexOf(',') == -1) {
return needle.compareTo(haystack) == 0;
}
//判断是否在第一个元素
if (needle.compareTo(haystack.substring(0, haystack.indexOf(','))) == 0) {
return true;
}
//判断是否在最后一个元素
if (needle.compareTo(haystack.substring(haystack.lastIndexOf(&