Как можно вывести строку из задаваемых пользователем произвольного набора цифр большим, символьным шрифтом? Должна быть возможность легко заменять шрифт.
Пример шрифта
___ __ ___ ____ _ _ _____ __ ______ ___ ___
/ _ \ /_ | |__ \ |___ \ | || | | ____| / / |____ | / _ \ / _ \
| | | | | | ) | __) | | || |_ | |__ / /_ / / | (_) | | (_) |
| | | | | | / / |__ < |__ _| |___ \ | '_ \ / / > _ < \__, |
| |_| | | | / /_ ___) | | | ___) | | (_) | / / | (_) | / /
\___/ |_| |____| |____/ |_| |____/ \___/ /_/ \___/ /_/
Например, так:
static class Digit {
String[] lines;
public Digit(String... lines) {
this.lines = lines;
}
/**
* функция для удобного создания массива Digit[] из описания шрифта
*
* @param lines описание шрифта в виде строк с большими цифрами 0-9, цифры разделены пробелом
* @return массив длины 10
*/
public static Digit[] createDigits(String... lines) {
int height = lines.length;
int width = (lines[0].length() - 9 /* десять цифр => девять пробелов */) / 10;
return IntStream
.range(0, 10) // Stream из цифр 0-9
.mapToObj(digit ->
new Digit(Stream
.of(lines)
// цифры в line идут следующим образом:
// `width` символов цифры `0`, пробел,
// `width` символов цифры `1`, пробел,
// ...
.map(line -> line.substring(digit * (width + 1), (digit + 1) * (width + 1) - 1))
.toArray(String[]::new))
).toArray(Digit[]::new);
}
}
public static void main(String[] args) {
Digit[] digits = Digit.createDigits(
" ### # ##### ##### # ####### ##### ####### ##### ##### ",
" # # ## # # # # # # # # # # # # # # #",
"# # # # # # # # # # # # # # #",
"# # # ##### ##### # # ###### ###### # ##### ######",
"# # # # # ####### # # # # # # #",
" # # # # # # # # # # # # # # # #",
" ### ##### ####### ##### # ##### ##### # ##### ##### "
);
int height = digits[0].lines.length;
// число 5781, для удобства уже разбитое на цифры
int[] number = {5, 7, 8, 1};
for (int i = 0; i < height; i++) {
for (int digit : number) {
System.out.print(digits[digit].lines[i] + " ");
}
System.out.println();
}
}
Демонстрация работы на ideone.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Что лучше использовать для создания кнопки с дальнейшим редиректом? Упираться в семантику и использовать button или в быстродействие и расширенные...
Здравствуйте, есть менюшка, которая выводится циклом с CMS, тоисть все элементы по идее должны быть одинаковы, но в дебагере присутсвуют пробелы...
как поместит содержимое TABLE в DIV не выходя из границы DIV сейчас выглядеть так:
Доброго времени сутокПытаюсь воспользоваться скриптом из js файла, но выдается ошибка