indexOf、equals和contains 记录

 

不知道这三者的区别,感觉都能用,特意搜集了一下解释:

indexOf(): 可返回数组中某个指定的元素位置 开始位置的索引为 0 如果在数组中没找到指定元素则返回 -1。lastIndexOf() 方法查找字符串最后出现的位置。

IndexOf()和Contains()

IndexOf()方法和Contains()方法的作用,它们都是判断字符串中是否包含指定字符串
相同点:
IndexOf()方法和Contains()都区分大小写

equals和contains,equals是判断字符串的是不是相等contains是包含的意思


IndexOf()方法有一个内置参数StringComparison.OrdinalIgnoreCase可以设置不区分大小写
string str1="Abc";  string str2="abc";
str1.IndexOf(str2,StringComparison.OrdinalIgnoreCase);

Contains()方法只能先将字符串全部转换成大写或小写才能实现不区分大小写
string str1="Abc";  string str2="abc";
str1.ToUpper().Contains(str2.ToUpper());

2、匹配效率:

在区分大小写的情况下,Contains()方法效率会比IndexOf()方法效率高

在不区分大小写的情况下,IndexOf()方法效率会比Contains()方法效率高

3、返回值类型:

IndexOf()方法有包含指定字符串返回最开始出现的下标,下标从0开始,没有包含则返回-1。

Contains()方法有包含指定字符串返回true,不包含返回false。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java String 类型 API 测试代码 1.String和char[]之间的转换 toCharArray(); 2.String和byte[]之间的转换 getBytes() Arrays工具类 : Arrays.toString(names) String类 String replace(char oldChar, char newChar) String replace(CharSequence target, CharSequence replacement) String[] split(String regex) boolean contains(CharSequence s):当且仅当此字符串包含指定的 char 值序列时,返回 true int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引 int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始 int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引 int lastIndexOf(String str, int fromIndex):返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索 boolean endsWith(String suffix):测试此字符串是否以指定的后缀结束 boolean startsWith(String prefix):测试此字符串是否以指定的前缀开始 boolean startsWith(String prefix, int toffset):测试此字符串从指定索引开始的子字符串是否以指定前缀开始 int length():返回字符串的长度: return value.length char charAt(int index): 返回某索引处的字符return value[index] boolean isEmpty():判断是否是空字符串:return value.length == 0 String toLowerCase():使用默认语言环境,将 String 中的所有字符转换为小写 String toUpperCase():使用默认语言环境,将 String 中的所有字符转换为大写 String trim():返回字符串的副本,忽略前导空白和尾部空白 boolean equals(Object obj):比较字符串的内容是否相同 boolean equalsIgnoreCase(String anotherString):与equals方法类似,忽略大小写 String concat(String str):将指定字符串连接到此字符串的结尾。 等价于用“+” String substring(int beginIndex):返回一个新的字符串,它是此字符串的从beginIndex开始截取到最后的一个子字符串。 String substring(int beginIndex, int endIndex) :返回一个新字符串,它是此字符串从beginIndex开始截取到endIndex(不包含)的一个子字符串。
这段代码是一个 Java 程序,用于统计输入中每个单词出现的次数,并按照出现次数将单词排序输出。程序的具体实现如下: 1. 导入 java.util 包,以使用 List 和 Scanner 类。 ``` import java.util.*; ``` 2. 创建一个公共的类 Main,其中包含一个公共的静态方法 main。 ``` class Main{ public static void main(String[] args){ // 程序代码 } } ``` 3. 创建一个 Scanner 对象 in,用于从标准输入读取数据。 ``` Scanner in = new Scanner(System.in); ``` 4. 创建三个 ArrayList 对象 list、set 和 put,分别用于存储输入的单词、去重后的单词和统计后的结果。 ``` List<String> list = new ArrayList<>(); List<String> set = new ArrayList<>(); List<String> put = new ArrayList<>(); ``` 5. 使用 while 循环读取输入的数据,将每个单词存储到 list 中。 ``` while(!(line = in.nextLine()).equals("end")){ String[] l = line.split(" "); for(String s:l){ list.add(s); } } ``` 6. 使用 for 循环遍历 list,将不重复的单词存储到 set 中。 ``` for(String l:list){ if(!set.contains(l)){ set.add(l); } } ``` 7. 使用另一个 for 循环遍历 set,统计每个单词在 list 中出现的次数,并将结果存储到 put 中。 ``` for(String s:set){ int n = 0; for(String l:list){ if(s.equals(l)){ n++; } } put.add(s + " " + n); } ``` 8. 使用 Collections.sort 方法对 put 进行排序,排序规则是先按照单词出现次数从大到小排序,若出现次数相同,则按照单词在输入中的顺序排序。 ``` Collections.sort(put, new Comparator<String>() { @Override public int compare(String o1, String o2) { String[] arr1 = o1.split(" "); String[] arr2 = o2.split(" "); int s1 = Integer.parseInt(arr1[1]); int s2 = Integer.parseInt(arr2[1]); int f = s2 - s1; if(s1 == s2){ int index1 = put.indexOf(o1); int index2 = put.indexOf(o2); f = index1 - index2; } return f; } }); ``` 9. 使用 forEach 方法遍历 put,将结果输出到标准输出。 ``` put.forEach(System.out::println); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值