java 相邻字段_java String字符串判断是否相邻实现高亮提示处理

// 使用遍历将传入的字符串和关键字进行匹配,完成title着色功能。

@Test

public void highLighter() {

// String keyword,String title

String keyword = "冲击钻";

String title = "日立 冲击钻FDV16VB2 家用13MM冲击手电钻 双模式冲击钻墙壁打孔";

char[] keys = keyword.toCharArray();

char[] titles = title.toCharArray();

int forInt = 0;

List iList = new ArrayList();

for (char titlesChar : titles) {

for (char keysChar : keys) {

if (keysChar == titlesChar) {

iList.add(forInt);

}

}

forInt = forInt + 1;

}

System.out.println(iList);

this.highLighterString(title, iList);

}

// 将字符串插入需要修饰的代码。

public void highLighterString(String title, List iList) {

int one = iList.get(0);

int forint = 0;

List> Lists = new ArrayList>();

List listIndex = new ArrayList();

for (Integer integer : iList) {

if (integer == one) {

one = integer +1;

listIndex.add(integer);

}else {

Lists.add(listIndex);

listIndex = new ArrayList();

listIndex.add(integer);

one = integer +1;

}

forint = forint + 1;

}

Lists.add(listIndex);

System.out.println(Lists);

}

public void highLighterinsert(List> Lists, String title) {

System.out.println(title);

StringBuffer buffer = new StringBuffer(title);

int bufsiza = 0;

String startHtml="";

String endHtml="";

for (List list : Lists) {

int start = list.get(0);

buffer.insert(bufsiza + start, startHtml);

bufsiza = bufsiza + startHtml.length();

int end = list.get(list.size() - 1);

buffer.insert(bufsiza + end + 1, endHtml);

bufsiza = bufsiza + endHtml.length();

System.out.println(buffer);

}

System.out.println("结果:" + buffer);

}

判断是否相邻的字符串,用来实现高亮。

[3, 4, 5, 21, 22, 25, 30, 31, 32]

正在循环几次啊?0

相等:3

正在循环几次啊?1

相等:4

正在循环几次啊?2

相等:5

正在循环几次啊?3

正在循环几次啊?4

相等:22

正在循环几次啊?5

正在循环几次啊?6

正在循环几次啊?7

相等:31

正在循环几次啊?8

相等:32

[[3, 4, 5], [21, 22], [25], [30, 31, 32]]

日立 冲击钻FDV16VB2 家用13MM冲击手电钻 双模式冲击钻墙壁打孔

日立 冲击钻FDV16VB2 家用13MM冲击手电钻 双模式冲击钻墙壁打孔

日立 冲击钻FDV16VB2 家用13MM冲击手电钻 双模式冲击钻墙壁打孔

日立 冲击钻FDV16VB2 家用13MM冲击手电 双模式冲击钻墙壁打孔

日立 冲击钻FDV16VB2 家用13MM冲击手电 双模式冲击钻墙壁打孔

结果:日立 冲击钻FDV16VB2 家用13MM冲击手电 双模式冲击钻墙壁打孔

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值