Conteúdo do ArrayList em uma String sem "[]"?

Minha duvida é como fazer para exibir o conteúdo do meu ArrayList sem os [] quando executo pelo meu método toString() a saída é [exemplo] e eu necessito que a saída seja apenas exemplo sem [];

Como devo proceder?

2 curtidas

Você deve reescrever o método toString() da seguinte forma:

ArrayList<String> nomes = new ArrayList(){
      @Override
      public String toString()
      {
                return super
                        .toString()
                        .replace("[", "")
                        .replace("]", "");
       }
};

Utilizando:

nomes.add("nome a");
nomes.add("nome b");
     
System.out.println(nomes);

Saída:

nome a, nome b

Se precisar fazer algum outro formato vai no método reescrito toString() e mude de acordo com suas preferencias.

Link Uteis:

2 curtidas

Fiz assim só que continua me devolvendo o conteúdo com []?

@Override
public String toString() {
	try{
	       return getScParam()   			 
				.replace("[", "")
				.replace("]", "");
	}
        catch(NullPointerException ex){
		
	}          
	return null;
}

O que é getScParam()?

Se for um retorno de um ArrayList poste o código!
Se for um retorno de um ArrayList faça:

return getScParam().toString().replace("[","").replace("]","");

Então, você posta uma duvida mas, não posto o código para que possamos nos basear, porque, a solução proposta está correta. !!!

Por favor sempre poste todo conteúdo da duvida!

então tenho a classe script abaixo:

public class Script implements Serializable {

String caminhoData;
String caminhoBanco;
String porta;
String nomeDB;

public Script() {

}

public Script( String caminhoData, String caminhoBanco, String porta, String nomeDB) {
    this.caminhoData = caminhoData;
    this.caminhoBanco = caminhoBanco;
    this.porta = porta;
    this.nomeDB = nomeDB;
}

public String getPorta() {
    return porta;
}

public void setPorta(String porta) {
    this.porta = porta;
}


public String getNomeDB() {
    return nomeDB;
}

public void setNomeDB(String nomeDB) {
    this.nomeDB = nomeDB;
}

public String getCaminhoData() {
    return caminhoData;
}

public void setCaminhoData(String caminhoData) {
    this.caminhoData = caminhoData;
}

public String getCaminhoBanco() {
    return caminhoBanco;
}

public void setCaminhoBanco(String caminhoBanco) {
    this.caminhoBanco = caminhoBanco;
}

@Override
public String toString() {
    
    return getPorta().replace("[","").replace("]","") ;
   
    }

}

na minha classe DAO por exemplo tenho:

 public ArrayList<Script> getCaminhoPorta() throws SQLException {
    con = H2_Connection.getConexao();
    ArrayList<Script> np = new ArrayList<Script>();
    ResultSet rs;
    try {
        pstm = con.prepareStatement("SELECT * FROM CAMINHO_PORTA");
        rs = pstm.executeQuery();
        while (rs.next()) {
            Script p_name = new Script();
            p_name.setPorta(rs.getString("N_PORTA"));

            np.add(p_name);
        }

        return np;
    } catch (JdbcSQLException e) {
        e.printStackTrace();
        return null;
    } catch (SQLException ex) {
        ex.printStackTrace();
        return null;
    }
}

que pega os dados de uma tabela no meu banco H2 na minha classe controle tenho o seguinte método:

public ArrayList<Script> selectedNomePorta() throws SQLException, NamingException, ClassNotFoundException {

    return dao.getCaminhoPorta();
}

na minha aplicação jsf onde tenho por exemplo:

<h:form class="f3">
                    <br></br><br></br>
                    <label class="title">&nbsp;&nbsp;Parâmetros de banco&nbsp;&nbsp;</label><br></br><br></br>
                    Parâmetros: <p:inputText value="#{scriptControle.selectedScript.porta}" />
                    &nbsp;&nbsp;
                    <h:commandButton value ="SALVAR" class ="btnAction" action="#{scriptControle.createParametros()}"/>
                    <h:commandButton value ="DELETAR" class ="btnActionDU" action="#{scriptControle.deleteParametros()}"/>
                    <br></br><br></br>

                    <label class="title">&nbsp;&nbsp;Parametros Cadastrados&nbsp;&nbsp;</label>

                    <p:dataTable var="np" value="#{scriptControle.list()}" class="tabela">             
                        <p:column headerText="Parametros">
                            <h:outputText value="#{np.porta}"  />
                        </p:column>

                    </p:dataTable>
                </h:form>  

funciona normalmente no outputText é exibido oque foi salvo no banco e sem [] preciso que seja exibido ou que armazene da mesma forma em uma variável, futuramente eu tenho que ler essa porta que estou passando em um cmd eu ja tenho a classe funcionando só que se ele exibe com as [] não funciona preciso que exiba da mesma maneira que eu passei para o banco, detalhe dei o exemplo de apenas uma DAO para não ficar muito extenso e o getScParam() que você me perguntou e esse getPorta() eu só alterei o nome

Como é gravado na sua base de dados porta?

Olha eu também acho que já te passei a dica ! você precisa adaptar ao seu código

Consegui estava passando o replace no lugar errado, obrigado, se puder me ajudar com uma outra duvida no mesmo assunto ainda segue abaixo:

public String allCaminho() {
    return getCaminhoBanco() + getCaminhoData() +getPorta() ;
}

@Override
public String toString() {        
    return allCaminho();
}

se observar eu tenho mais 2 métodos alem do getPorta() citado acima na minha primeira duvida tenho também o getCaminhoBanco() e o getCaminhoData() nas mesmas condições de estrutura do getPorta() que apresentei acima também, ai vem a duvida quando eu executo agora esta sendo exibido a seguinte saida : nulltestandonulltestenullnullnullnullbla bla bla aparece vários null na saida

E ai, qual a duvida? Sair valores null é a falta de valor nas variáveis internas, você pode resolver isso passando os valores corretamente para seu objeto!

Bom, tentei todas as formas ai, não deram certo!
A Forma Que Vou Te Passar, Para mim serve bem, para você pode não ser muito legal
dentro do método toString:

String retorno = "";

for(int i = 0; i<nomeDaList.size();i++){
     retorno+=nomeDaList.get(i) + " ";
}

return retorno;

Isso Vai Funcionar, Com Certeza!