Jump to content

Dúvida sobre array em Java


Harrison

Postagens Recomendadas

Desafio

Faça um programa com as características abaixo:

  1. Leia 10 nomes, sem espaço em branco;
  2. Imprima o terceiro nome da lista;
  3. Imprima o sétimo nome da lista;
  4. Imprima o nono nome da lista.

Entrada

A entrada consiste vários arquivos de teste, cada um com dez linhas e em cada linha tem um nome de no até 30 caracteres e sem espaço em branco. Conforme mostrado no exemplo de entrada a seguir.

Saída

Para cada arquivo da entrada, terá um arquivo de saída. E como mencionado no Desafio, gere três linhas conforme os procedimentos 2, 3 e 4.

O código que fiz é o que vem loco abaixo:

import java.util.Scanner;

public class Problem {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
// TODO: complete os espaços em branco com sua solução para o problema
        String[] nomes = new String[10];        
        for(int i=0 ; i<10 ; i++){
           if(nomes[i] == nomes[2]){
          nomes[i] = sc.nextLine();
          System.out.println(nomes[2]);
        }
     if(nomes[i] == nomes[6]){
          nomes[i] = sc.nextLine();
          System.out.println(nomes[6]);
        }
   if(nomes[i] == nomes[8]){
          nomes[i] = sc.nextLine();
          System.out.println(nomes[8]);
        }        
    }  
    }
}

---------------------------------------------------------------------------------------------------------------------------------------------------

Dado de entrada:
igla  felipe  adriana  malu  laine  rafael  ray  amy  venilton  camila
Saída esperada:
adriana  ray  venilton
Sua Saída:
null  null  adriana  null  null  null  ray  null  venilton
-----------------------------------------------------------------------------------------------------------------------------------------------------
eu consegui imprimir a resposta correta como na saída esperada, porém nos outros espaços aparecem o null. Como faço para que o programa não imprima os nulls?
Link to comment
Compartilhe em outros sites

Olá! Levando em conta seu raciocínio seria mais ou menos assim o seu código para não retornar valores nulos

 

 Scanner sc = new Scanner(System.in);

        String[] nomes = new String[10];
        for (int i = 0; i < nomes.length; i++) {

            nomes[i] = sc.nextLine();

            if (nomes[i] == nomes[2]) {
                System.out.println("Está no index 3: " + nomes[2]);
            }

            if (nomes[i] == nomes[6]) {
                System.out.println("Está no index 7: " + nomes[6]);
            }

            if (nomes[i] == nomes[8]) {
                System.out.println("Está no index 9: " + nomes[8]);
            }
        }

        sc.close();

    }

Com isso você já evitaria os valores nulos... Porém acredito que no problema está pedindo o retorno final a saída como "adriana  ray  venilton" que seria mais ou menos assim

 

Scanner sc = new Scanner(System.in);

        String[] nomes = new String[10];
        String resultado = "";
        for (int i = 0; i < nomes.length; i++) {

            nomes[i] = sc.nextLine();

            if (nomes[i] == nomes[2]) {
                resultado += nomes[i] + ' ';
            }

            if (nomes[i] == nomes[6]) {
                resultado += nomes[i] + ' ';
            }

            if (nomes[i] == nomes[8]) {
                resultado += nomes[i] + ' ';
            }
        }
        System.out.println(resultado);
        sc.close();


Apenas foi adicionado uma variável String com nome de resultado e pegando os valores para deixar como no pedido da saída...
 

Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...