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当成一个字符,这属于你的个人需求,所以需要自己写个小算法么。形如:
第一个参数是你的目标位置,就是你上面的“ab”,第二个参数就是你的完整字符串,大致思路如下,你就是想把任意传进来的目标字符串都当成1个字符,那很简单,你就按传进来的字符串的第一个字符为索引去计算就OK了。
直接上实现代码:
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当成一个字符,这属于你的个人需求,所以需要自己写个小算法么。形如:
第一个参数是你的目标位置,就是你上面的“ab”,第二个参数就是你的完整字符串,大致思路如下,你就是想把任意传进来的目标字符串都当成1个字符,那很简单,你就按传进来的字符串的第一个字符为索引去计算就OK了。
直接上实现代码:
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 的位置。