1.cookie的优点(为什么要使用cookie)与缺点?
2.cookie与session的联系与区别?
3.触发器?
4.字符串匹配?
(一)算法:BF(暴力检索匹配)、KMP、BM、Sunday
BM算法的效率比KMP算法高3~4倍。BM算法的思想如下:首先将原字符串与子串按首字符串对齐,从子串的尾部元素开始与原字符串进行比对。若不相同,则判断该子串元素所对应父串的元素是否包含在子串中,若不包含,则将子串移动至该元素的后一个元素对应的位置;若包含,则移动子串将子串中的元素与该元素对齐。接下来再次从子串末尾开始比较,如果出现了多个匹配的情况,从开始不匹配的位置,寻找子串中是否包含有原字符串中的元素,若包含,则将子串该元素与原字符串对齐。
https://www.cnblogs.com/Franky-ln/p/5890201.html
(二)java的api方法:
1).indexOf(char[]),lastindexof(char[])
public void fun(){ int j = "dfdfdfe3e".indexOf("e");//从头开始索引 System.out.println(j); int p = "dfsggrtg".indexOf("g",5); //从指定索引5处,开始检索 System.out.println(p); int k = "dfdfdee".lastIndexOf("fd"); //从右端开始匹配 System.out.println(k); int k2 = "dfdfee".lastIndexOf("f",2); //从右端指定索引2处,开始检索 System.out.println(k2); }
6
7
3
1
2).正则表达式,使用pattern和Matcher。pattern是一个编译好的正则表达式,Matcher是一个正则表达式适配器,我们一般用Pattern来获取一个Mather对象,然后用Matcher来操作
正则表达式对象。
//统计子串在父串中出现的次数 public void ThroughMatch(String pattern, String str){ Pattern p = Pattern.compile(pattern);//pattern是匹配模式 Matcher matcher = p.matcher(str); int count = 0; while(matcher.find()){ count++; } System.out.println(count); } ThroughMatch("f", "sfffde");
运行结果:3
3)split()函数,通过给定正则表达式来划分字符串
public void split(String str,String regex){ String[] list = str.split(regex); System.out.println(Arrays.toString(list)); }
split("df1gd","1");
运行结果:[df, gd]
(三)用栈来实现:
5.json字符串解析包?
jackson、fastjson