String[] sort = { "1","4","6","2","3",'5'};
我想把数组里的3插到4后面
最后结果是 1,4,3,6,2,5

解决方案 »

  1.   

    String[] sort = { "1","4","3","6","2","5"};
      

  2.   

    给你个思路吧
    1.循环数组中的每个元素,赋值给变量  temp 
    2.if tmep equals 4
    3.如果true,就将4后面的每个数字向后移一位,将3insert到4的后面
    4.如果false,就继续循环。
    基本思路
      

  3.   

    提供3种解决方法,其实原理是一样的.
    1.利用JDK已经提示的类.
        
       //将数组的数据copy到list
      List<String> list = new ArrayList<String>();
      for(int i = 0; i < sort.length ; i ++){
         list.add(sort[i]);
      }
      int fourIndex = list.indexOf("4");
      int threeIndex = list.indexOf("3");
      List<String> subList = list.subList(0,fourIndex+1);
       List<String> subList2 = list.subList(fourIndex+1,list.size());
      if(threeIndex< fourIndex ){
        subList.add("3");
        subList.remove(threeIndex);
      }else{
        subList.add("3");
        subList2.remove(subList2.indexOf("3"));
      }
      for(int i =0 ; i < subList2.size();i++){
        subList.add(subList2.get(i);
     }     
     return subList.toArray();第二种方法列就是用数组来做,思路跟用list来实现一样的.
    第三种方法,由于是String[],我们就可用一个特别一点的方法
     StringBuilder sb = new StringBuilder();
     for(int i = 0 ; i < sort.length; i ++){
       sb.append(sort[i]);
     }
     String temp = sb.toString();
     int indexFor3 = temp.indexOf("3");
     int indexFor4 = temp.indexOf("4");
     sb = new StringBuilder();
     if(indexFor3 < indexFor4){
       sb.append(temp.subString(0,indexFor3);
       sb.append(temp.subString(indexFor3+1,indexFor4+1);
       sb.append("3");
       sb.append(temp.subString(indexFor4+1),temp.subString(temp.length());
     }else{
       //3在4的后面,参照上面的逻辑自己写了..
     }
     temp = sb.toString();
     //再把temp截取成数组里的格式即单个字符的子串,加入一个数组,返回即可..