style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Como llenar un array tipo String desde el usuario?

Hola a todos!

Bueno tengo una duda, para empezar soy nuevo en java y quisiera saber como puedo llenar un Array, apartir de los datos que ingrese el usuario, los datos son nombres propios y el usuario debe dar el numero de nombres que va a introducir y finalmente, arrojar el noombre cuyo tamaño en letras sea menor y el nombre con mayor longitud.

Les agradesco de ante mano a quienes puedan darme una idea de como puedo resolver este programa!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de cfpmx

¿Cuál de todas esas cosas

¿Cuál de todas esas cosas no sabes hacer? ¿No tienes hecho nada de código?

Imagen de Leonardo

Ya que no tenia nada que

Ya que no tenia nada que hacer pues te hice la tarea:

       

import java.io.*;

public class Array {

        public String [] array;
       
        public void pedirCantidadDeNombres(){
       
             BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
             boolean salir=true;                        
               
             do{
             
                System.out.println("Cuantos Nombres Deseas Ingresar?");
                try{
                       
                        array = new String[Integer.parseInt(entrada.readLine())];                      
                }
             
                catch(IOException e){}       
             
                catch(NumberFormatException e){
               
                        System.out.println("El Caracter Que Ingresaste No Es Numero, Intenta De Nuevo.");
                        salir=false;                   
               
                }
             }while(salir!=true);      
                 
             for(int i=0;i<array.length;i++){
               
                    System.out.println("Ingrese Nombre Numero: "+ (i+1));
                    try{array[i]=entrada.readLine();} catch(IOException e){}
             } 
        }              
       
        public void buscarLongitudes(){
               
                String aux   = new String("");
                int contador = 0;
               
                do{
               
                   for(int i=0;i<array.length-1;i++){
                       
                           if(array[i].length()>array[i+1].length()){
                               
                                  aux        = array [i+1];
                                  array[i+1] = array[i];
                                  array[i]   = aux;                                                    
                       }
                   }
                   contador++;
                   
                }while(contador<array.length-1);  
               
                System.out.println("El Nombre Mas Largo Es: "+ array[array.length-1]);
                System.out.println("El Nombre Mas Corto Es: "+ array[0]);                  
        }
       
        public static void main(String [] args){
               
                Array Objeto=new Array();
               
                Objeto.pedirCantidadDeNombres();
                Objeto.buscarLongitudes();
        }      
}

Aunque no del todo... el programa te muestra el nombre mas largo y el mas corto, por ejemplo ingresando lo siguiente:

1 - Leonardo
2 - Julio
3 - Alejandra

Resultado:

Nombre más largo: Alejandra.
Nombre más corto: Julio

Pero que pasa cuando resulta que en los nombres mas largos hay 2 nombres con el mismo numero de caracteres? ahhh pues no te lo indica, solo te muestra 1, de igual forma con los nombres cortos, eso ya te lo dejo para que investigues compañero, eso sí yo lo hice a mi forma de entender y con lo poco que sé de programación, sobre todo en el tema de moverme y hacer la comparacion en el arreglo, pero bueno yo solo expongo una posible solución.

Espero te sea de utilidad y que algún otro usuario guste ayudarte e indicarme si hice lineas de código inecesarias o está bien en general, de antemano gracias!

Imagen de beto.bateria

Esto:                 do{  

Esto:

                do{
               
                   for(int i=0;i<array.length-1;i++){
                       
                           if(array[i].length()>array[i+1].length()){
                               
                                  aux        = array [i+1];
                                  array[i+1] = array[i];
                                  array[i]   = aux;                                                    
                       }
                   }
                   contador++;
                   
                }while(contador<array.length-1);

lo puedes cambiar por esto:

String corto = array[0];
String largo = "";

for(int i=0;i<array.length();i++){

  if  (array[i].length() < corto.length()){
       corto = array[i];
   }
                       
  if  (array[i].length() > largo.length()){
       largo = array[i];
   }
}

Imagen de beto.bateria

Otro mejora: String corto =

Otro mejora:

String corto = array[0];
String largo = "";
int length = array.length()
for(int i=0;i<length;i++){

  int sLength = array[i].length();
  if  (sLength < corto.length()){
       corto = array[i];
   }
                       
  if  (sLength > largo.length()){
       largo = array[i];
   }
}

Imagen de neko069

Como ejercicio de

Como ejercicio de programación está bien, como respuesta, llegas un poco tarde ;-)

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">