1.【Java必修课】判断String是否包含子串的四种方法及性能对比
2.javaä¸indexOf();ç使ç¨ã
3.java 中ArrayList集合用indexof方法返回元素的索引 如果元素是重复的 应该返回哪个索引?
4.java indexOf()
5.java中怎么判断一个字符串中包含某个字符或字符串
6.java ä¸å¦ä½ä½¿ç¨INDEX OF()
【Java必修课】判断String是否包含子串的四种方法及性能对比
判断一个字符串是否包含某个特定子串是常见的场景,比如判断一篇文章是否包含敏感词汇、判断日志是否有ERROR信息等。本文将介绍四种方法并进行性能测试。 在String的函数中,提供了indexOf(subStr)方法,图片app源码验证返回子串subStr第一次出现的位置,如果不存在则返回-1。例子如下: 最直观判断的方法是contains(subStr),返回类型为boolean,如果包含返回true,不包含则返回false。例子如下: 实际上,String的contains方法是通过调用indexOf方法来判断的,源码如下: 通过强大的正则匹配来判断,虽然有点杀鸡用牛刀的感觉,但也不是LOL小程序源码不能用,例子如下: Apache的commons-lang3提供许多开箱即用的功能,StringUtils就提供了许多与字符串相关的功能,例子如下: 我们使用JMH工具来对四种方法进行性能测试,Maven引入代码如下: 测试代码如下: 测试结果如下: 最快的就是indexOf方法,其次是contains方法,二者应该没有实际区别,contains是调用indexOf来实现的。Apache的莎莎看书源码StringUtils为第三方库,相对慢一些。最慢的是使用了正则的Pattern的方法,这不难理解,正则引擎的匹配是比较耗性能的。 本文介绍了判断一个字符串是否包含某个特定子串的四种方法,并通过性能测试进行了对比。其中性能最好的是String的indexOf方法和contains方法,建议使用contains方法,香帅传奇源码性能好,跟indexOf相比,更直观,更不容易犯错。毕竟让每个人时刻记住返回-1代表不存在也不是一件容易的事。 但是,使用indexOf和contains方法都需要注意做判空处理,这时StringUtils的svm r语言源码优势就体现出来了。 总结,四种方法如下:indexOf(subStr):返回子串第一次出现的位置,不存在返回-1。
contains(subStr):返回true或false,是否包含。
Pattern匹配:使用正则匹配,相对耗性能。
StringUtils.contains:Apache库提供,相对慢。
性能测试结果显示,indexOf和contains方法最佳,建议使用contains方法。Apache库的StringUtils方法相对慢,正则匹配方法最慢。在使用方法时,注意处理空值问题。希望本文能帮助你更好地理解和使用这些方法。javaä¸indexOf();ç使ç¨ã
解éåå¨æ³¨ééé¢ï¼public class Finallypractice {public static void main(String[] args) {
ArrayList<String> a = new ArrayList<String>();
a.add(0, "zero");
a.add(1, "one");
a.add(2, "two");
a.add(3, "three");
printAl(a); // æ¤æ¶açå ç´ æ¯ï¼zero one two three
if (a.contains("three")) {
a.add("four"); // æ¤æ¶açå ç´ æ¯ï¼zero one two three four
}
// remove(int index):移é¤æ¤å表ä¸æå®ä½ç½®ä¸çå ç´ (aä¸çç´¢å¼ä¸º2çå ç´ æ¯ï¼two)
a.remove(2);
printAl(a); // æ¤æ¶açå ç´ æ¯ï¼zero, one, three, fours
// indexOf: è¿åæ¤å表ä¸é¦æ¬¡åºç°çæå®å ç´ çç´¢å¼ï¼æå¦ææ¤å表ä¸å å«å ç´ ï¼åè¿å -1
if (a.indexOf("four") != 4) {
a.add(4, "4.2"); // æ¤æ¶açå ç´ æ¯ï¼zero one three four 4.2
System.out.println(a.indexOf("four")); // æ¤å表ä¸é¦æ¬¡åºç°fourçç´¢å¼æ¯3(ä»0å¼å§)
}
printAl(a);
if (a.contains("two")) {
a.add("2.2");
}
printAl(a);
}
public static void printAl(ArrayList<String> al) {
for (String element : al) {
System.out.print(element + " ");
}
System.out.println(" ");
}
}
java 中ArrayList集合用indexof方法返回元素的索引 如果元素是重复的 应该返回哪个索引?
以下是indexOf的源代码,可以看出, 是从0往后找,找到就返回
/
*** Returns the index of the first occurrence of the specified element
* in this list, or -1 if this list does not contain the element.
* More formally, returns the lowest index <tt>i</tt> such that
* <tt>(o==null ? get(i)==null : o.equals(get(i)))</tt>,
* or -1 if there is no such index.
*/
public int indexOf(Object o) {
if (o == null) {
for (int i = 0; i < size; i++)
if (elementData[i]==null)
return i;
} else {
for (int i = 0; i < size; i++)
if (o.equals(elementData[i]))
return i;
}
return -1;
}
java indexOf()
åµåµ,æå°±ç±åçé¹,æç»ä¸ªæ´å¥½ç解å³æ¹æ³
å¿åæ¯æå«äººç¬è¯ææ¢å~好æ¹æ³ä¸è½ç¬èªäº«ç¨
//: IndexTest.java
public class IndexTest {
public static void main(String[] args) {
String test = "@@@";
char c = '@';
int index = 0;
int count =0;
//å个å符串æç´¢
while((index=nextIndex(test,c,index))>-1){
System.out.print(index+" ");
++index;
++count;
}
System.out.println("\nå ±æ¾å°å¹é '"+c+"' çå°æ¹ "+count+" å¤.");
index=0;
count=0;
String test2 = "abcabdabecdbdedfdecef";
String str = "de";
//å符串æç´¢
while((index=nextIndex(test2,str,index))>-1){
System.out.print(index+" ");
index+=str.length();//
++count;
}
System.out.println("\nå ±æ¾å°å¹é '"+str+"' çå°æ¹ "+count+" å¤.");
}
//ä¸ä¸ªå符
public static int nextIndex(String src,char search,int preIndex){
return src.indexOf(search,preIndex);
}
//ä¸ä¸ªå符串
public static int nextIndex(String src,String search,int preIndex){
return src.indexOf(search,preIndex);
}
}
java中怎么判断一个字符串中包含某个字符或字符串
在Java中,要检查一个字符串是否包含特定的字符或子串,你可以使用`indexOf()`方法。这个方法会在字符串中查找指定子串,并返回第一次出现的位置。如果找到,返回的值将不为-1,否则返回-1。以下是一个简单的示例:
在Java编程中,如果你想判断一个字符串是否包含某个字符或字符串,你可以使用`String`类的`indexOf()`方法。例如,如果你有一个字符串`String str = "ABC_";`,你可以这样进行检查:
java
public static void main(String[] args) {
String str = "ABC_";
if (str.indexOf("ABC") != -1) {
这表明字符串`str`中包含了子串"ABC",系统会输出"包含"。
} else {
如果`indexOf()`返回-1,那么字符串`str`中不包含"ABC",系统会输出"不包含"。
}
}
通过这种方式,你可以轻松地在Java程序中实现字符串的包含检查。
java ä¸å¦ä½ä½¿ç¨INDEX OF()
public class Test{
public static void main(String[] args){
String s = "Hello World!";
// 1. indexOf(int ch)
System.out.println("s.indexOf('o')=" + s.indexOf('o')); //è¿å 4
//2. indexOf(int ch, int fromIndex)
System.out.println("s.indexOf('o',6)=" + s.indexOf('o',6)); //è¿å7
//3. indexOf(String str)
System.out.println("s.indexOf(\"llo\")=" + s.indexOf("llo")); //è¿å 2
//4. indexOf(String str, int fromIndex)
System.out.println("s.indexOf(\"llo\", 5)=" + s.indexOf("llo", 5)); //è¿å -1
}
}
å ·ä½indexOfçå®ä¹ï¼è¯·åèAPIææ¡£ã 满æ请é纳ã