一个String类型的数组,
想找出"abc"这个元素的索引
请高手们写些代码给我参考

解决方案 »

  1.   

    用下面的就可以呀,很简单
    String ss []={"111","222","333"};
    System.out.println(Arrays.binarySearch(ss, "333"));
      

  2.   

    String 又个方法好是indexof(),它又几种实现,可以返回index。
      

  3.   

    用下面的就可以呀,很简单 
    Java code
            String ss []={"111","222","333"};
            System.out.println(Arrays.binarySearch(ss, "333"));楼上的用这个要对数组首先进行排序的把    Arrays.sort(ss);
              
      

  4.   

    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);
        }
    }
      

  5.   


    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"));
             }
             
        }
    }//自己看看 可能对你有帮助 。。
      

  6.   


    老兄,java里的数组没有indexOf
      

  7.   

    数组没有indexof方法 只有集合类才有 如果用还得循环附值 直接用三楼给的方法很好用的
      

  8.   

    是到 String 数组中搜 String,不是在 String 中搜字符!
      

  9.   

    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;
        }
      }
    }
      

  10.   

    方法多了,仔细看string 和集合的各种方法
      

  11.   

    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);
    }}
      

  12.   


    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);
      

  13.   

    String str="jwjwjejskjep";
    str.indexOf('s')返回s在string的位置
      

  14.   

    需要排序! 仔细看看,你数组中元素已经按升序排序好了,当然不用再排序!另外一旦对数组排序,元素索引就改变了,再搜索也得不到正确索引!下面摘自 JDK API 文档:
    public static int binarySearch(long[] a, long key)
    使用二分搜索法来搜索指定的 long 型数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过 sort(long[]) 方法)。如果没有对数组进行排序,则结果是不确定的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。
    参数:
    a - 要搜索的数组
    key - 要搜索的值 
    返回:
    如果它包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。插入点 被定义为将键插入数组的那一点:即第一个大于此键的元素索引,如果数组中的所有元素都小于指定的键,则为 a.length。注意,这保证了当且仅当此键被找到时,返回的值将 >= 0。
      

  15.   

    更正:
    是 public static int binarySearch(Object[] a, Object key) 一着急复制错了。
      

  16.   

    用正则表达式怎么样啊,我试试呢。
    String str = "abccde123erabciamabcilikeabc";
    Pattern indexOfString = Pattern.compile("abc");
    Matcher mm = indexOfString.matcher(str);

    while (mm.find())
    System.out.println(mm.group());
      

  17.   

    直接用个for循环查询吧    
    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();  不可取   只适用于排好序的数组。