public class Rombo {
//Caracter que formara el rombo
static final String comodin = new String("@");
public static void quita_comodin(StringBuffer s1) {
if (!(s1.toString().isEmpty())) {
s1.deleteCharAt(0);
}
if (!(s1.toString().isEmpty())) {
s1.deleteCharAt(1);
}
}
public static void pon_comodin(StringBuffer s1, int i) {
if (i > 0) {
s1.append(comodin + comodin);
} else {
s1.append(comodin);
}
}
public static void main(String[] args) {
//Buffer para las cadenas de caracteres y espacios
StringBuffer s1 = new StringBuffer("");
StringBuffer espacios = new StringBuffer("");
//Leemos el numero de filas desde la linea de comandos
int filas = new Integer(args[0]);
//Parte de Validacion (basica)
if (filas < 0) {
System.out.println("No se Admiten numeros negativos ");
System.out.println("Intentelo de nuevo con un valor mayor o igual a cero ");
System.exit(1);
}
if( filas != 0 ){
filas = ( filas / 2 ) + 1;
}
System.out.println("--------------- by dvinchi666 : d.vinchi666@gmail.com --------- ");
System.out.println("--------------- Rombo formado de Caracteres --------- ");
//Se crean los espacios necesarios para empezar a dibujar el rombo
for (int j = 0; j < filas; j++) {
espacios.append(" ");
}
//Parte Superior del Rombo
for (int i = 0; i < filas; i++) {
pon_comodin(s1, i);
espacios.deleteCharAt(0);
System.out.println(espacios.toString() + s1.toString());
}
//Parte Inferior del Rombo (espejo de la parte superior)
for (int i = 0; i < filas + 1; i++) {
quita_comodin(s1);
espacios.append(" ");
System.out.println(espacios.toString() + s1.toString());
}
}
}