如何在java中使用Indexof()方法

时间:2011-07-25 10:29:06

标签: java

我正在使用indexof()来查找子字符串。如果我的字符串不在第一个位置,它会找到我的字符串,如果我的字符串位于第一个位置则不起作用。任何人都可以提出另一种方法来找到它吗?

这是我的代码: -

public class IndexOfStr {


  public static void main(String args[]) {
  String s = "Niraj";
  System.out.println(s);
  System.out.println("indexOf(niraj, 1) -> " + s.indexOf("niraj", 1));


 }}

输出: -

Niraj indexOf(niraj, 1) -> -1

我正在尝试在Excel文件中找到该字符串。

4 个答案:

答案 0 :(得分:4)

字符串中的第一个字符是索引0,而不是索引1。

还要注意indexOf区分大小写。

我不知道你如何访问Excel文件中的数据,但是你可能想要在搜索匹配时将所有数据转换为小写,或者在搜索时使用regexp,并制作正则表达式不敏感的。

答案 1 :(得分:2)

来自docs:

  

返回第一次出现的字符串中的索引   指定的子字符串,从指定的索引开始。整数   返回的是最小值k,其中:        k> = Math.min(fromIndex,this.length())&& this.startsWith(STR,   k)如果不存在这样的k值,则返回-1。

您从索引1而不是索引0开始,因此找不到该字符串。

您可以执行s.indexOf("niraj", 0)s.indexOf("niraj")

答案 2 :(得分:2)

你应该从0而不是1开始。

s.indexOf("Niraj", 0);

请注意indexOf()方法区分大小写。

答案 3 :(得分:0)

这里出现两个错误:
1)你的字符串是“Niraj”,你想找到子串“niraj”。因此,您的子字符串在给定字符串中不存在,并且您得到-1 2)您开始搜索位置1,而不是位置0,因此您的子字符串不在给定范围内。 输入正确的子字符串或调用

  

s.toLowerCase()。indexOf(“niraj”,0)