java 如何查找字符串的位置

时间:2023-01-03 21:21:09
                String s="abcdae";
System.out.println("length:"+s.length());
System.out.println("char:"+s.charAt(3));
System.out.println("index"+s.indexOf('d'));

//System.out.println("index"+s.indexOf(String 'ab'));//不对,不知道怎么改

3 个解决方案

#1


indexOf 是指首次匹配的位置以参数的第一个字符记,s.indexOf("d") == 3; s.indexOf("ab") == 0; 

#2


你这样写明显是不对的,indexOf(String s)是得到s的第一个字符在字符串中的索引,你的写法既有语法上的错误(参数怎么还带String类型?String居然还单引号?),而且也违背了indexOf的计算原则。你想得到‘ab’在字符串中的索引无非就是把ab当成一个字符,这属于你的个人需求,所以需要自己写个小算法么。形如:

public int getIndexOfNumber(String index,String str){
    return 0;
}

第一个参数是你的目标位置,就是你上面的“ab”,第二个参数就是你的完整字符串,大致思路如下,你就是想把任意传进来的目标字符串都当成1个字符,那很简单,你就按传进来的字符串的第一个字符为索引去计算就OK了。
直接上实现代码:

public class Test21 {

public static int getIndexOfNumber(String index, String str) {
String _index = index.substring(0, 1);
char a = _index.toCharArray()[0];
int result = str.indexOf(a);
return result;
}

public static void main(String[] args) {
int result = getIndexOfNumber("ab", "abcdef");
System.out.println(result);

}

}

#3


你是  a 的为位置还是 b 的位置。

#1


indexOf 是指首次匹配的位置以参数的第一个字符记,s.indexOf("d") == 3; s.indexOf("ab") == 0; 

#2


你这样写明显是不对的,indexOf(String s)是得到s的第一个字符在字符串中的索引,你的写法既有语法上的错误(参数怎么还带String类型?String居然还单引号?),而且也违背了indexOf的计算原则。你想得到‘ab’在字符串中的索引无非就是把ab当成一个字符,这属于你的个人需求,所以需要自己写个小算法么。形如:

public int getIndexOfNumber(String index,String str){
    return 0;
}

第一个参数是你的目标位置,就是你上面的“ab”,第二个参数就是你的完整字符串,大致思路如下,你就是想把任意传进来的目标字符串都当成1个字符,那很简单,你就按传进来的字符串的第一个字符为索引去计算就OK了。
直接上实现代码:

public class Test21 {

public static int getIndexOfNumber(String index, String str) {
String _index = index.substring(0, 1);
char a = _index.toCharArray()[0];
int result = str.indexOf(a);
return result;
}

public static void main(String[] args) {
int result = getIndexOfNumber("ab", "abcdef");
System.out.println(result);

}

}

#3


你是  a 的为位置还是 b 的位置。