Java,csv格式字符串判断子串是否存在快速方法

博客探讨了在Java中如何高效地判断一个字符串是否存在于CSV格式的数据中。提供了两种方法,包括直接的字符串包含判断和将CSV拆分为数组进行逐个比较。通过性能测试,显示直接使用字符串判断的方法在处理大量数据时执行速度较快。
摘要由CSDN通过智能技术生成

问题:数据库中保存了一批用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(&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值