Apelando
JA que no rooms na consigo respostas, apelo aquí:
Erro nos testes, estou com esta dificuldade neste desafio os testes primarios da como certo, mas alí tem um erro, faltam 2 espacos para imprimir a saida correta, sendo assi no teste fechado nao passa.
Ja fiz todo tipo de testes no codigo e está tudo certo até com IA , JUnit para verificar simulando entrades de usuarios para validar se os resultados coincidem com o esperado, e tudo está certo . Mas na plataforma DIO no teste aberto 4 imprime faltando 2 caracteres , o que me leva a creer que o erro está na plataforma.
Por favor me digam se estou errado. As vezes acontece com quem nao e nada experto em uma lingiuagem. No Meu Caso Em java.
Uma pena, so falta esse dessafio para finalizar o bootcamp, o resto está todo terminado.
Saudaçoes, espero alguém possa me socorrer.
segue o codigo:
import java.util.*;
class Artigo {
int id;
String titulo;
String autor;
String dataPublicacao;
int curtidas;
public Artigo(int id, String titulo, String autor, String dataPublicacao, int curtidasIniciais) {
this.id = id;
this.titulo = titulo;
this.autor = autor;
this.dataPublicacao = dataPublicacao;
this.curtidas = curtidasIniciais;
}
public void adicionarCurtidas(int quantidade) {
this.curtidas += quantidade;
}
public String obterInformacoes() {
return titulo + " | " + autor + " | " + dataPublicacao + " | Curtidas: " + curtidas;
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Map<Integer, Artigo> artigos = new HashMap<>();
artigos.put(1, new Artigo(1, "Introducao ao Angular", "Carlos Silva", "10/01/2024", 10));
artigos.put(2, new Artigo(2, "Como usar Services", "Ana Souza", "15/02/2024", 5));
artigos.put(3, new Artigo(3, "Rotas no Angular", "Joao Pedro", "02/03/2024", 2));
artigos.put(4, new Artigo(4, "Criando Pipes", "Maria Oliveira", "12/03/2024", 0));
List<String> saidas = new ArrayList<>();
while (true) {
String entrada = scanner.nextLine().trim();
if (entrada.equalsIgnoreCase("Sair") || entrada.equals("3")) {
break;
}
String[] partes = entrada.split(" ");
if (partes.length < 2) {
saidas.add("Erro: Entrada invalida! Informe uma opcao e um ID.");
continue;
}
int opcao;
int idArtigo;
try {
opcao = Integer.parseInt(partes[0]);
idArtigo = Integer.parseInt(partes[1]);
} catch (NumberFormatException e) {
saidas.add("Erro: Entrada invalida! Informe uma opcao e um ID.");
continue;
}
if (opcao != 1 && opcao != 2) {
saidas.add("Erro: Opcao invalida! Use 1 para add curtidas ou 2 para consultar.");
continue;
}
if (!artigos.containsKey(idArtigo)) {
saidas.add("Erro: Artigo nao encontrado!");
continue;
}
Artigo artigo = artigos.get(idArtigo);
if (opcao == 1) {
if (partes.length < 3) {
saidas.add("Erro: Informe a quantidade de curtidas.");
continue;
}
try {
int curtidasAdicionar = Integer.parseInt(partes[2]);
artigo.adicionarCurtidas(curtidasAdicionar);
saidas.add("Curtidas atualizadas: " + artigo.curtidas);
} catch (NumberFormatException e) {
saidas.add("Erro: Numero de curtidas invalido.");
}
} else if (opcao == 2) {
saidas.add(artigo.obterInformacoes());
}
}
for (String saida : saidas) {
System.out.println(saida);
}
scanner.close();
}
}