传入三个数组,
a={"football","basketball","volleyball"};
b={"adi","rabk","ghy","|","nike","|","adi","rty"};
c={"","","","","",""};根据a数组元素查找"football",如果在a[0]处找到,就把b数组里第1个"|"前的第一个元素打印c数组长度次。即打印6次System.out.println("adi");
同理,如果在a[1]处找到"football",就把b数组里第2个"|"前的第一个元素打印c数组长度次。即打印6次System.out.println("nike");其实我已经写了一个,但是现在总是不好定位到要打印的那个元素。程序后部分有问题的,请各位帮忙指点一下哦先谢了
static void testGenerator(String[] a,String[] b,String[] c)    {        int count = 0,k = 0,end = 0;        for(int i=0;i<a.length;i++)        {            if("ata".equals(a[i]))            {                count = i;                break;            }        }        for(int j=0;j<b.length;j++)        {            if("CC".equals(b[j]))            {                k++;                if(k == count)                {                    end = k+1;                    break;                }            }        }        for(int n=0;n<c.length;n++)        {            System.out.println(b[end]);        }     }

解决方案 »

  1.   


    public void getReturn(String[] a,String[] b,String[] c) {
    String str = "football";
    int times = c.length;
    int index = 2;
    for (int i = 0; i < a.length; i++) {
    if (a[i].equals("football"))
    index = i;
    }
    printStr(getFirStr(index,b),times);
    } public String getFirStr(int index,String[] b) {
    String str = null;
    if (index == 0) {
    str = b[0];
    } else if (index == 1) {
    for (int i = 0; i < b.length; i++) {
    if (b[i].equals("|")) {
    str = b[i + 1];
    break;
    }
    }
    }

    return str; }

    public void printStr(String str,int times){
    for(int i=0;i<times;i++){
    System.out.println(str);
    }
    }
      

  2.   

    感觉需求还是没说清,楼上的方案适合0和1的情况。但是实际上a的元素个数和b的"|"有相对应的关系形式。即如果a有3元素:
    a={"football","basketball","volleyball"};
    那么b={"ds","fr","|","fde","|","wew","vfr","bgt","|"};
    同理如果a有5元素,b中也会出现5次 "|",所以如果a中第四个出现"football",我们需要把b中第四个"|"前的第一个元素打印c数组长度次。
     
      

  3.   

    我也是菜鸟,我是从你的代码中边学习边试着改的。不要笑话啊。代码好像能运行了,结果好像对的。
    public class TestSearch {
       
    static void testGenerator(String[] a,String[] b,String[] c)     {         int count = -1,k = 0,end = -1; //好像count初值为-1,end初值为-1        for(int i=0;i <a.length;i++)         {             if("volleyball".equals(a[i]))             {                 count = i;                 break;             } 
            }         if(count==-1){//好像要检查一下
             System.out.println("数组a中找不到。");return;
            }
            
            if(count==0)
            {
             end=0;
            }
            else{
            for(int j=0;j <b.length;j++)         {             if("|".equals(b[j])) //在b中找"|"            {                 k++;                 if(k == count)                 {                     end = j+1; //应该是j+1吧                    break;                 }             }         }//for 
            }//if
            for(int n=0;n <c.length;n++)         {             System.out.println(b[end]);         }     }
    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO 自动生成方法存根
    testGenerator(new String[]{"football","basketball","volleyball"},
                    new String[]{"ds","fr","|","fde","|","wew","vfr","bgt","|"},
                    new String[]{"","","","","",""} );
    }}
    wew
    wew
    wew
    wew
    wew
    wew
      

  4.   

    楼上的,十分感谢。。呵呵,确实有一个地方疏忽却一直没看出来,,就是
    if(k == count) 
    {       end = j+1; 
          break; 

    应该是《j+1》,多谢3楼和5楼的热心帮助:)