Ola a todos. Estou com algumas dúvidas quanto ao meu método toString(). Tenho um trabalho que pede essa saída de dados:
ID: 0000000001
Title: Fundamentos de programación
Published: 2015
Genre: STEM
Loanable: Yes
Copies: 2 (40,60 €)
1 ...... P3-E3
5 ...... P3-E3
Estou quase lá mas preciso de umas dicas quanto a formatação meu código esta assim:
@Override
public String toString() {
Copy[] aux = new Copy[getNumCopies()];
for (int i = 0; i < copies.length; i++) {
if (copies[i] != null) {
aux[i] = copies[i];
}
}
if (isLoanable() == true) {
return "ID: " + getId() + "\n" + "Title: " + getTitle() + "\n" + "Published: " + getYearPublished() + "\n"
+ "Genre: " + getGenre() + "\n" + "Loanable: " + "YES" + "\n" + "Copies: " + getNumCopies() + " ("
+ getTotalCost() + " €)" + "\n" + "\t" + Arrays.toString(aux);
} else {
return "ID: " + getId() + "\n" + "Title: " + getTitle() + "\n" + "Published: " + getYearPublished() + "\n"
+ "Genre: " + getGenre() + "\n" + "Loanable: " + "NO" + "\n" + "Copies: " + getNumCopies() + " ("
+ getTotalCost() + " €)" + "\n" + "\t" + Arrays.toString(aux);
}
}
e com saída:
ID: 0000000001
Title: Fundamentos de Programacion
Published: 2015
Genre: STEM
Loanable: YES
Copies: 7 (142.1 €)
[1 …… P3-E2
, 2 …… P3-E2
, 3 …… P3-E2
, 4 …… P3-E2
, 5 …… P3-E2
, 6 …… P3-E2
, 7 …… P3-E2
]
Como tirar as " [ " e as " , " ? Tem alguma forma de não precisar utilizar um laço e um novo vetor para não mostrar os valores null do vetor original? Porque se jogo diretamente assim:
Arrays.toString(copies)
Tenho essa saída:
ID: 0000000001
Title: Fundamentos de Programacion
Published: 2015
Genre: STEM
Loanable: YES
Copies: 7 (142.1 €)
[1 …… P3-E2
, 2 …… P3-E2
, 3 …… P3-E2
, 4 …… P3-E2
, 5 …… P3-E2
, 6 …… P3-E2
, 7 …… P3-E2
, null, null]
O metodo toString() da classe Copy esta assim:
@Override
public String toString() {
return "ID: " + getNumber() + " …… " + "location: " + getLocation() + "\n" + "\t";
}