用下面的就可以呀,很简单 String ss []={"111","222","333"}; System.out.println(Arrays.binarySearch(ss, "333"));
String 又个方法好是indexof(),它又几种实现,可以返回index。
用下面的就可以呀,很简单 Java code String ss []={"111","222","333"}; System.out.println(Arrays.binarySearch(ss, "333"));楼上的用这个要对数组首先进行排序的把 Arrays.sort(ss);
import java.util.*;public class csdntest { public static void main(String args[]) { String[] str = {"123","a","abc","a"}; List list = new ArrayList(); for(int i = 0; i < str.length; i ++){ list.add(str[i]); } int ch = list.indexOf("abc"); System.out.println(ch); } }
public class Untitled2 { public Untitled2() { } public static void main(String[] args) { String[] str={"dfsdfsdfabc1234","dfsdfsadf"}; for(int i=0;i<str.length;i++){ str[i].indexOf("abc"); System.out.println(""+str[i].indexOf("abc")); }
} }//自己看看 可能对你有帮助 。。
老兄,java里的数组没有indexOf
数组没有indexof方法 只有集合类才有 如果用还得循环附值 直接用三楼给的方法很好用的
是到 String 数组中搜 String,不是在 String 中搜字符!
public int getS() { String[] str = {XXXX,XXXXXXXX,XX}; for(int i = 0;i<str.length;i++){ if(str[i].equals("abc")){ return i; }else{ System.out.println("没有你要找的字符串"); return null; } } }
方法多了,仔细看string 和集合的各种方法
6楼方法的一点改进:import java.util.*;public class CsdnTest { public static void main(String[] args) { String[] str = {"123", "a", "abc", "a"}; List<String> list = new ArrayList<String>(str.length); //加上了初始容量和泛型类型参数 for (int i = 0; i < str.length; i++){ list.add(str[i]); } int ch = list.indexOf("abc"); System.out.println(ch); }}
String[] str = { "123", "a", "abc", "a" }; StringBuffer sbuffer = new StringBuffer(); for (int i = 0; i < str.length; i++) { if (str[i].equals("abc")) sbuffer.append(i + ","); } System.out.println(sbuffer);
需要排序!仔细看看,你数组中元素已经按升序排序好了,当然不用再排序!另外一旦对数组排序,元素索引就改变了,再搜索也得不到正确索引!下面摘自 JDK API 文档: public static int binarySearch(long[] a, long key) 使用二分搜索法来搜索指定的 long 型数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过 sort(long[]) 方法)。如果没有对数组进行排序,则结果是不确定的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。 参数: a - 要搜索的数组 key - 要搜索的值 返回: 如果它包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。插入点 被定义为将键插入数组的那一点:即第一个大于此键的元素索引,如果数组中的所有元素都小于指定的键,则为 a.length。注意,这保证了当且仅当此键被找到时,返回的值将 >= 0。
更正: 是 public static int binarySearch(Object[] a, Object key) 一着急复制错了。
String ss []={"111","222","333"};
System.out.println(Arrays.binarySearch(ss, "333"));
Java code
String ss []={"111","222","333"};
System.out.println(Arrays.binarySearch(ss, "333"));楼上的用这个要对数组首先进行排序的把 Arrays.sort(ss);
{
public static void main(String args[])
{
String[] str = {"123","a","abc","a"};
List list = new ArrayList();
for(int i = 0; i < str.length; i ++){
list.add(str[i]);
}
int ch = list.indexOf("abc");
System.out.println(ch);
}
}
public class Untitled2 {
public Untitled2() {
}
public static void main(String[] args) {
String[] str={"dfsdfsdfabc1234","dfsdfsadf"};
for(int i=0;i<str.length;i++){
str[i].indexOf("abc");
System.out.println(""+str[i].indexOf("abc"));
}
}
}//自己看看 可能对你有帮助 。。
老兄,java里的数组没有indexOf
String[] str = {XXXX,XXXXXXXX,XX};
for(int i = 0;i<str.length;i++){
if(str[i].equals("abc")){
return i;
}else{
System.out.println("没有你要找的字符串");
return null;
}
}
}
String[] str = {"123", "a", "abc", "a"};
List<String> list = new ArrayList<String>(str.length); //加上了初始容量和泛型类型参数
for (int i = 0; i < str.length; i++){
list.add(str[i]);
}
int ch = list.indexOf("abc");
System.out.println(ch);
}}
String[] str = { "123", "a", "abc", "a" };
StringBuffer sbuffer = new StringBuffer();
for (int i = 0; i < str.length; i++) {
if (str[i].equals("abc"))
sbuffer.append(i + ",");
}
System.out.println(sbuffer);
str.indexOf('s')返回s在string的位置
public static int binarySearch(long[] a, long key)
使用二分搜索法来搜索指定的 long 型数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过 sort(long[]) 方法)。如果没有对数组进行排序,则结果是不确定的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。
参数:
a - 要搜索的数组
key - 要搜索的值
返回:
如果它包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。插入点 被定义为将键插入数组的那一点:即第一个大于此键的元素索引,如果数组中的所有元素都小于指定的键,则为 a.length。注意,这保证了当且仅当此键被找到时,返回的值将 >= 0。
是 public static int binarySearch(Object[] a, Object key) 一着急复制错了。
String str = "abccde123erabciamabcilikeabc";
Pattern indexOfString = Pattern.compile("abc");
Matcher mm = indexOfString.matcher(str);
while (mm.find())
System.out.println(mm.group());
String[] str = { "123", "a", "abc", "a" };
for(int i=0;i<str.length;i++){
if(str[i].equals("abc"))
System.out.println(i);
}
Arrays.binarySearch(); 不可取 只适用于排好序的数组。