Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: flpe45 en 05 de Noviembre 2015, 04:39
-
PERO AL MISMO TIEMPO DEBE PEDIR CUANTOS NOMBRES QUIERES INGRESAR HASTA AHORA SOLO LLEVO ESTO AYUDAA!!!!!!!
import java.util.Scanner;
public class Nombres {
private Scanner teclado;
private String[] nombres;
int n;
public void leerDatos() {
Scanner entrada = new Scanner(System.in);
System.out.printf("Dame el numero de nombres a ingresar:\n");
n = entrada.nextInt();
teclado=new Scanner(System.in);
nombres=new String[n];
for(int i=0;i<nombres.length;i++) {
System.out.println("Ingrese el nombre:");
nombres[i]=teclado.next();
}
}
public void ordenar() {
for(int j=0;j<4;j++) {
for(int i=0;i<4-j;i++) {
if (nombres[i].compareTo(nombres[i+1])>0) {
String aux;
aux=nombres[i];
nombres[i]=nombres[i+1];
nombres[i+1]=aux;
}
}
}
}
public void imprimirInfo() {
System.out.println("NOMBRES:");
System.out.println("ORDENADOS DE A - Z");
for(int i=0;i<nombres.length;i++) {
System.out.println(nombres[i]);
}
}
public static void main(String[] ar) {
Nombres nom=new Nombres();
nom.leerDatos();
nom.ordenar();
nom.imprimirInfo();
}
}
-
Lo que te recomendaría que tu clase principal el main este aparte no todo dentro de una clase funciona tu código solo que esta mal ordenado tu código falta dividir las clase o ordenar mejor
Por ejemplo le hice algún modificación.
Este seria la clase principal main donde le llama al los otra clase
package odenarprueba;
public class OdenarPrueba {
public static void main(String[] args) {
Nombres nom = new Nombres();
nom.leerDatos();
nom.ordenar();
nom.imprimirInfo();
}
}
Y este seria la clase donde esta el código para ordenar
package odenarprueba;
import java.util.Scanner;
public class Nombres {
private Scanner teclado;
private String[] nombres;
int n;
public void leerDatos() {
Scanner entrada = new Scanner(System.in);
System.out.printf("Dame el numero de nombres a ingresar:\n");
n = entrada.nextInt();
teclado = new Scanner(System.in);
nombres = new String[n];
for (int i = 0; i < nombres.length; i++) {
System.out.println("Ingrese el nombre:");
nombres[i] = teclado.next();
}
}
public void ordenar() {
for (int j = 0; j < 4; j++) {
for (int i = 0; i < 4 - j; i++) {
if (nombres[i].compareTo(nombres[i + 1]) > 0) {
String aux;
aux = nombres[i];
nombres[i] = nombres[i + 1];
nombres[i + 1] = aux;
}
}
}
}
public void imprimirInfo() {
System.out.println("NOMBRES:");
System.out.println("ORDENADOS DE A - Z");
for (int i = 0; i < nombres.length; i++) {
System.out.println(nombres[i]);
}
}
}
Aunque la clase podía llamarlos con otro nombres que vaya mas por lo que pide se podía dividir con mas clase pero con esto ya tendría que funcionarte.