import java.util.stream.IntStream;
import java.util.stream.Stream;
public class Main {
static class Digit {
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(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
] + " "); }
}
}
}
aW1wb3J0IGphdmEudXRpbC5zdHJlYW0uSW50U3RyZWFtOwppbXBvcnQgamF2YS51dGlsLnN0cmVhbS5TdHJlYW07CgpwdWJsaWMgY2xhc3MgTWFpbiB7CiAgICBzdGF0aWMgY2xhc3MgRGlnaXQgewogICAgICAgIFN0cmluZ1tdIGxpbmVzOwoKICAgICAgICBwdWJsaWMgRGlnaXQoU3RyaW5nLi4uIGxpbmVzKSB7CiAgICAgICAgICAgIHRoaXMubGluZXMgPSBsaW5lczsKICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqINGE0YPQvdC60YbQuNGPINC00LvRjyDRg9C00L7QsdC90L7Qs9C+INGB0L7Qt9C00LDQvdC40Y8g0LzQsNGB0YHQuNCy0LAgRGlnaXRbXSDQuNC3INC+0L/QuNGB0LDQvdC40Y8g0YjRgNC40YTRgtCwCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gbGluZXMg0L7Qv9C40YHQsNC90LjQtSDRiNGA0LjRhNGC0LAg0LIg0LLQuNC00LUg0YHRgtGA0L7QuiDRgSDQsdC+0LvRjNGI0LjQvNC4INGG0LjRhNGA0LDQvNC4IDAtOSwg0YbQuNGE0YDRiyDRgNCw0LfQtNC10LvQtdC90Ysg0L/RgNC+0LHQtdC70L7QvAogICAgICAgICAqIEByZXR1cm4g0LzQsNGB0YHQuNCyINC00LvQuNC90YsgMTAKICAgICAgICAgKi8KICAgICAgICBwdWJsaWMgc3RhdGljIERpZ2l0W10gY3JlYXRlRGlnaXRzKFN0cmluZy4uLiBsaW5lcykgewogICAgICAgICAgICBpbnQgaGVpZ2h0ID0gbGluZXMubGVuZ3RoOwogICAgICAgICAgICBpbnQgd2lkdGggPSAobGluZXNbMF0ubGVuZ3RoKCkgLSA5IC8qINC00LXRgdGP0YLRjCDRhtC40YTRgCA9PiDQtNC10LLRj9GC0Ywg0L/RgNC+0LHQtdC70L7QsiAqLykgLyAxMDsKICAgICAgICAgICAgcmV0dXJuIEludFN0cmVhbQogICAgICAgICAgICAgICAgICAgIC5yYW5nZSgwLCAxMCkgIC8vIFN0cmVhbSDQuNC3INGG0LjRhNGAIDAtOQogICAgICAgICAgICAgICAgICAgIC5tYXBUb09iaihkaWdpdCAtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERpZ2l0KFN0cmVhbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub2YobGluZXMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vINGG0LjRhNGA0Ysg0LIgbGluZSDQuNC00YPRgiDRgdC70LXQtNGD0Y7RidC40Lwg0L7QsdGA0LDQt9C+0Lw6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGB3aWR0aGAg0YHQuNC80LLQvtC70L7QsiDRhtC40YTRgNGLIGAwYCwg0L/RgNC+0LHQtdC7LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgd2lkdGhgINGB0LjQvNCy0L7Qu9C+0LIg0YbQuNGE0YDRiyBgMWAsINC/0YDQvtCx0LXQuywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAobGluZSAtPiBsaW5lLnN1YnN0cmluZyhkaWdpdCAqICh3aWR0aCArIDEpLCAoZGlnaXQgKyAxKSAqICh3aWR0aCArIDEpIC0gMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50b0FycmF5KFN0cmluZ1tdOjpuZXcpKQogICAgICAgICAgICAgICAgICAgICkudG9BcnJheShEaWdpdFtdOjpuZXcpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgRGlnaXRbXSBkaWdpdHMgPSBEaWdpdC5jcmVhdGVEaWdpdHMoCiAgICAgICAgICAgICAgICAiICAjIyMgICAgICAjICAgICAjIyMjIyAgICMjIyMjICAjICAgICAgICMjIyMjIyMgICMjIyMjICAjIyMjIyMjICAjIyMjIyAgICMjIyMjICIsCiAgICAgICAgICAgICAgICAiICMgICAjICAgICMjICAgICMgICAgICMgIyAgICAgIyAjICAgICMgICMgICAgICAgIyAgICAgIyAjICAgICMgICMgICAgICMgIyAgICAgIyIsCiAgICAgICAgICAgICAgICAiIyAgICAgIyAgIyAjICAgICAgICAgICMgICAgICAgIyAjICAgICMgICMgICAgICAgIyAgICAgICAgICAgIyAgICMgICAgICMgIyAgICAgIyIsCiAgICAgICAgICAgICAgICAiIyAgICAgIyAgICAjICAgICAjIyMjIyAgICMjIyMjICAjICAgICMgICMjIyMjIyAgIyMjIyMjICAgICAjICAgICAjIyMjIyAgICMjIyMjIyIsCiAgICAgICAgICAgICAgICAiIyAgICAgIyAgICAjICAgICMgICAgICAgICAgICAgIyAjIyMjIyMjICAgICAgICMgIyAgICAgIyAgICMgICAgICMgICAgICMgICAgICAgIyIsCiAgICAgICAgICAgICAgICAiICMgICAjICAgICAjICAgICMgICAgICAgIyAgICAgIyAgICAgICMgICMgICAgICMgIyAgICAgIyAgICMgICAgICMgICAgICMgIyAgICAgIyIsCiAgICAgICAgICAgICAgICAiICAjIyMgICAgIyMjIyMgICMjIyMjIyMgICMjIyMjICAgICAgICMgICAjIyMjIyAgICMjIyMjICAgICMgICAgICAjIyMjIyAgICMjIyMjICIKICAgICAgICApOwogICAgICAgIGludCBoZWlnaHQgPSBkaWdpdHNbMF0ubGluZXMubGVuZ3RoOwoKICAgICAgICAvLyDRh9C40YHQu9C+IDU3ODEsINC00LvRjyDRg9C00L7QsdGB0YLQstCwINGD0LbQtSDRgNCw0LfQsdC40YLQvtC1INC90LAg0YbQuNGE0YDRiwogICAgICAgIGludFtdIG51bWJlciA9IHs1LCA3LCA4LCAxfTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGhlaWdodDsgaSsrKSB7CiAgICAgICAgICAgIGZvciAoaW50IGRpZ2l0IDogbnVtYmVyKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KGRpZ2l0c1tkaWdpdF0ubGluZXNbaV0gKyAiICIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOwogICAgICAgIH0KICAgIH0KfQ==