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?
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?
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:
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"> Parâmetros de banco </label><br></br><br></br>
Parâmetros: <p:inputText value="#{scriptControle.selectedScript.porta}" />
<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"> Parametros Cadastrados </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!