Я не забываю слышать, что, будучи функциональным языком, Lisp был очень хорошим выбором для реализации рекурсивных алгоритмов. Способность разыскать дерево и работу Ваш путь назад важна при рассмотрении процессов принятия решений (обход) и конечный результат (вершина).
Это было сказано мне во время курса AI в университете, где мы изучили Lisp.
Вам нужна длина поля. Попробуйте использовать это:
printf ("%-32s %f\n", pt.toString(), conditionalProbs[1])
-32 говорит вам, что строку следует выровнять по левому краю, но с длиной поля 32 символа (по вашему вкусу, я выбрал 32, так как это кратно 8, что является нормальной вкладкой остановка на терминале). Использование того же самого в заголовке, но с % s
вместо % f
сделает эту линию также красивой.
Что вам нужно, так это удивительный, но бесплатный format ()
.
Он работает, позволяя вам указывать заполнители в строке шаблона; он производит комбинацию шаблона и значений в качестве вывода.
Пример:
System.out.format("%-25s %9.7f%n", "K and Burstner", 0.055170);
% s
- это заполнитель для строк; % 25s
означает заполнение любой данной строки пробелом до 25 символов. % - 25s
означает выравнивание строки по левому краю в поле, т. Е. Заполнение справа от строки. % 9.7f
означает вывод числа с плавающей запятой, всего 9 разрядов и 7 справа от десятичной. % n
необходимо для "выполнения" завершения строки, что вы и делаете в противном случае отсутствует при переходе от System.out.println ()
к System.out.format ()
. В качестве альтернативы вы можете использовать
String outputString = String.format("format-string", arg1, arg2...);
для создания вывода Строка
Как насчет
System.out.printf("%-30s %f\n", pt.toString(), conditionalProbs[1]);
См. Документацию для дополнительной информации о мини-языке Formatter .