I need help with an iteration

0

In a servlet I am collecting some parameters of a jsp in this way

//Parametro urls

String urls[] = request.getParameterValues("urls");

//Parametro busca

String busca[] = request.getParameterValues("busca");

and later I pass them to a java class

if (op.equals("EOH")){
    try{
        request.setAttribute("CUEST_P",EOH_ctl.EOH_Prov.CUEST(urls));
        request.setAttribute("DIR_P",EOH_ctl.EOH_Prov.DIR(urls,busca,reemplaza));
        request.setAttribute("DIR_XML_P",EOH_ctl.EOH_Prov.DIR_XML(urls));
        request.setAttribute("HAB_XML_P",EOH_ctl.EOH_Prov.HAB_XML(urls)); 
        request.setAttribute("PERSONAL_P",EOH_ctl.EOH_Prov.PERSONAL(urls));

        request.setAttribute("VIA_P", EOH_ctl.EOH_Prov.VIA(urls));
        request.setAttribute("VIA_XML_P",EOH_ctl.EOH_Prov.VIA_XML(urls));
        request.setAttribute("CUEST_D",EOH_ctl.EOH_Def.CUEST(urls)); 
        request.setAttribute("DIR_D",EOH_ctl.EOH_Def.DIR(urls,busca,reemplaza));
        request.setAttribute("DIR_XML_D",EOH_ctl.EOH_Def.DIR_XML(urls));  
        request.setAttribute("HAB_XML_D",EOH_ctl.EOH_Def.HAB_XML(urls));  
        request.setAttribute("PERSONAL_D",EOH_ctl.EOH_Def.PERSONAL(urls));

        request.setAttribute("VIA_D", EOH_ctl.EOH_Def.VIA(urls));        
        request.setAttribute("VIA_XML_D",EOH_ctl.EOH_Def.VIA_XML(urls));  
        request.getRequestDispatcher("CargaEOH.jsp").forward(request, response );
    } catch (Exception ex){
        request.setAttribute("error", ex.getMessage());
        request.getRequestDispatcher("CargaEOH.jsp").forward(request, response );
    }
}

Inside the class where I spend it, I pass it to another class in this way

//Buscamos y reemplazamos

FindAndReplace_txt.Reemplazar(objeto,busca,reemplaza);

Now when I've already spent it I'm trying to make an iterator, but it's not working for me

public static void Reemplazar(Objeto_Ditto objeto, String busca[], String reemplaza[]){

        Iterator<String> it = busca.iterator;

        modifyFile("file", "\.", "0");

        System.out.println("done");
    }

I do not know why it does not let me create this iterator to replace the \. and the 0

This is the class where I'm going to iterate

static void modifyFile(String filePath, String oldString, String newString){

    File fileToBeModified = new File(filePath);
    String oldContent = "";
    BufferedReader reader = null;
    FileWriter writer = null;

    try
    {
        reader = new BufferedReader(new FileReader(fileToBeModified)); 
        //Lectura de todas las líneas del archivo
        String line = reader.readLine();
        while (line != null) 
        {
            oldContent = oldContent + line + System.lineSeparator();
            line = reader.readLine();
        }
        //Reemplazo el contenido viejo
        String newContent = oldContent.replaceAll(oldString, newString);
        //Reescrivo el fichero
        writer = new FileWriter(fileToBeModified);
        writer.write(newContent);
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
    finally
    {
        try
        {
            //Closing the resources
            reader.close();
            writer.close();
        } 
        catch (IOException e) 
        {
            e.printStackTrace();
        }
    }
}

public static void Reemplazar(Objeto_Ditto objeto, String busca[], String reemplaza[]){
    Iterator<String> it = java.util.Arrays.asList(busca).iterator();
    Iterator<String> it2 = java.util.Arrays.asList(reemplaza).iterator();
    whylie(it.hasnext && it2.hasnext){
        String buscar = it.next();
        String reemplazar = it2.next();
        modifyFile("file", buscar, reemplazar);
    }
}

I do not know if I've been specific enough, thanks for the help in advance.

    
asked by Iván Montero 14.05.2018 в 12:27
source

1 answer

0

You do not understand very well how you want to use the iterator. In any case the problem is that busca is a String[] and the arrays simply do not have a property iterator .

If you want to obtain an iterator, the simplest thing is to create a List with the elements of the array and iterate over this list.

Iterator<String> it = java.util.Arrays.asList(busca).iterator();
    
answered by 14.05.2018 в 12:38