Problema com for print

3 respostas
V

Pessoal,

Tenho o seguinte code:

if(logosId.length == 1) {
                    
                    System.out.print("logosId.length: "+logosId.length);
                    Banner b = (Banner) bannerDAO.getObject(logosId[0]);
                    logoDirName = b.getBannerFile().getAbsolutePath();
                    cmd[3] = " -f ";
                    cmd[4] = logoDirName;
                    String logos = presentationPath + File.separator + "logos.gif";
                    cmd[5] = " -o "+"\""+logos+"\"";
                    comando = "cmd.exe /C start \" \" "+"\""+cmd[0]+"\""+cmd[1]+cmd[2]+cmd[3]+cmd[4]+cmd[5];
                    
                } else {
                    
                    for(int j = 0; j < logosId.length; j++) {
                        
                        System.out.print("logosId.length: "+logosId.length);
                        logoListDirName = new String[logosId.length];
                        System.out.println("logosId[j]: "+logosId[j]);
                        Banner b = (Banner) bannerDAO.getObject(logosId[j]);
                        logoListDirName[j] = b.getBannerFile().getAbsolutePath();
                        System.out.println("logoListDirName[j]: "+logoListDirName[j]);
                        cmd[3] = " -f ";
                        parametros = new String[logosId.length];
                        if(j == (logosId.length -  1)) {
                            cmd[j+4] = logoListDirName[j];
                            k=j+4;
                            parametros[j] = "cmd["+k+"]+"; 
                            System.out.println("cmd[j+4]: "+cmd[j+4]);
                            System.out.println("parametros[j]: "+parametros[j]);
                        } else {
                            cmd[j+4] = logoListDirName[j]+";";
                            k=j+4;
                            parametros[j] = "cmd["+k+"]";
                            System.out.println("cmd[j+4]: "+cmd[j+4]);
                            System.out.println("parametros[j]: "+parametros[j]);
                        }
                        k = j+5;
                        System.out.println("k: "+k);
                        
                    }
                    
                    String logos = presentationPath + File.separator + "logos.gif";
                    cmd[k] = " -o "+"\""+logos+"\"";
                    
                    comando = "cmd.exe /C start \" \" "+"\""+cmd[0]+"\""+cmd[1]+cmd[2]+cmd[3]+parametros+cmd[k];
                    
                    
                }

E os prints da saída:

logosId.length: 1
cmd.exe /C start " " “C:\Documents and Settings\vlima\Desktop\t
este\apache-tomcat-5.5.20\webapps\business\WEB-INF\GifGenerator.exe” -t 1000 -r
1 -f D:\helix_data\dmdweb\banners\footprint_2007030612421484.gif -o “D:\helix_da
ta\dmdweb\presentations\isidro_2007030616464241\logos.gif”
logosId.length: 2logosId[j]: 30
logoListDirName[j]: D:\helix_data\dmdweb\banners\footprint_2007030612421484.gif
cmd[j+4]: D:\helix_data\dmdweb\banners\footprint_2007030612421484.gif;
parametros[j]: cmd[4]
k: 5
logosId.length: 2logosId[j]: 31
logoListDirName[j]: D:\helix_data\dmdweb\banners\moonwalk_20070306124222788.gif
cmd[j+4]: D:\helix_data\dmdweb\banners\moonwalk_20070306124222788.gif
parametros[j]: cmd[5]+
k: 6
cmd.exe /C start " " “C:\Documents and Settings\vlima\Desktop\teste\apache-tomca
t-5.5.20\webapps\business\WEB-INF\GifGenerator.exe” -t 1000 -r 1 -f [Ljava.lang.
String;@7616ad -o “D:\helix_data\dmdweb\presentations\isidro_2007030616464241\lo
gos.gif”

Pergunta:

Como faço para printar cmd[4]+cmd[5] no lugar de [Ljava.lang.
String;@7616ad?

Obrigado.

3 Respostas

T

a) Use cmd[4] + cmd[5] :stuck_out_tongue:
b) Se você quer imprimir um array de strings, pode tentar:

import java.util.Arrays;
...
String[] cmd = ...;
...
System.out.println (Arrays.asList (cmd));
V

Fiz umas mudanças:

for(int j = 0; j < logosId.length; j++) {
                        
                        System.out.print("logosId.length: "+logosId.length);
                        logoListDirName = new String[logosId.length];
                        System.out.println("logosId["+j+"]: "+logosId[j]);
                        Banner b = (Banner) bannerDAO.getObject(logosId[j]);
                        logoListDirName[j] = b.getBannerFile().getAbsolutePath();
                        System.out.println("logoListDirName["+j+"]: "+logoListDirName[j]);
                        cmd[3] = " -f ";
                        parametros = new String[logosId.length];
                        if(j == (logosId.length -  1)) {
                            cmd[j+4] = logoListDirName[j];
                            parametros[j] = cmd[j+4]; 
                            System.out.println("parametros["+j+"]: "+parametros[j]);
                            System.out.println("j: "+j);
                        } else {
                            cmd[j+4] = logoListDirName[j]+";";
                            parametros[j] = cmd[j+4];
                            System.out.println("parametros["+j+"]: "+parametros[j]);
                            System.out.println("j: "+j);
                        }                        
                        k = j+5;
                        System.out.println("k: "+k);
                        
                    }
                    
                    String logos = presentationPath + File.separator + "logos.gif";
                    cmd[k] = " -o "+"\""+logos+"\"";
                    
                    System.out.println("asList: "+Arrays.asList(parametros));

logosId.length: 2logosId[0]: 30
logoListDirName[0]: D:\helix_data\dmdweb\banners\footprint_2007030612421484.gif
parametros[0]: D:\helix_data\dmdweb\banners\footprint_2007030612421484.gif;
j: 0
k: 5
logosId.length: 2logosId[1]: 31
logoListDirName[1]: D:\helix_data\dmdweb\banners\moonwalk_20070306124222788.gif
parametros[1]: D:\helix_data\dmdweb\banners\moonwalk_20070306124222788.gif
j: 1
k: 6
asList: [null, D:\helix_data\dmdweb\banners\moonwalk_20070306124222788.gif]

Porque está printando null, se tem algo no parametros[1]?

Vinicius.

V

Deu certo agora, mas ao invés de aparecer assim:

[D:\helix_data\dmdweb\banners\moonwalk_20070306124222789.gif;, D:\helix_data\dmdweb\banners\moonwalk_20070306124222788.gif]

Precisa ser assim:

D:\helix_data\dmdweb\banners\moonwalk_20070306124222789.gif;D:\helix_data\dmdweb\banners\moonwalk_20070306124222788.gif

Poruqe vai ser usado para rodar um programa.

Criado 7 de março de 2007
Ultima resposta 8 de mar. de 2007
Respostas 3
Participantes 2