Tuesday, March 26, 2013

Numbers in a digital form

So this code does a digital-i-sation of the number which you input.
Here's the expected output:


Try and play:

LedDisplayer.java


import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class LedDisplayer {

public static void main(String args[]) {
ArrayList<Integer> digit = new ArrayList();
int n = 0;
boolean neg=false;
int i_min=Integer.MIN_VALUE;
int i_max=Integer.MAX_VALUE;
// char c='\u00AF'; //for upper score use this
try {
if (args.length != 0) {
n = Integer.parseInt(args[0]);
} else
n = 123456789;
} catch (NumberFormatException e) {
System.out.println("Not a valid number. Input an integer in the range "+i_min+" to "+i_max);
}
if(n<0){
neg=true;
}
HashMap l0=new HashMap();
l0.put(1, "   ");
l0.put(2, " _ ");
l0.put(3, " _ ");
l0.put(4, "   ");
l0.put(5, " _ ");
l0.put(6, " _ ");
l0.put(7, " _ ");
l0.put(8, " _ ");
l0.put(9, " _ ");
l0.put(0, " _ ");

HashMap l1=new HashMap();
l1.put(1, "  |");
l1.put(2, " _|");
l1.put(3, " _|");
l1.put(4, "|_|");
l1.put(5, "|_ ");
l1.put(6, "|_ ");
l1.put(7, "  |");
l1.put(8, "|_|");
l1.put(9, "|_|");
l1.put(0, "| |");

HashMap l2=new HashMap();
l2.put(1, "  |");
l2.put(2, "|_ ");
l2.put(3, " _|");
l2.put(4, "  |");
l2.put(5, " _|");
l2.put(6, "|_|");
l2.put(7, "  |");
l2.put(8, "|_|");
l2.put(9, " _|");
l2.put(0, "|_|");

int j = 0;
do {
int dig = n % 10;
digit.add(dig);
n = n / 10;
j++;
} while (n > 0);

for (int x = digit.size() - 1; x >= 0; x--) {
int digi=digit.get(x);
System.out.print(l0.get(digi));
}
System.out.println("");
for (int x = digit.size() - 1; x >= 0; x--) {
int digi=digit.get(x);
System.out.print(l1.get(digi));
}
System.out.println("");
for (int x = digit.size() - 1; x >= 0; x--) {
int digi=digit.get(x);
System.out.print(l2.get(digi));
}
}
}

No comments:

Post a Comment