Я использую класс Java FormatMessage для создания строки, которая принимает несколько операторов условия в качестве параметров, используя метод format ().С его помощью я создал термометр с использованием символов ASCII, который принимает случайное число в градусах Цельсия и в зависимости от этого числа вставляет символы звездочки в строку в определенных местах в зависимости от условия.Например, ((celsius >= 25)?"*":" ")
Другими словами, звездочки обозначают уровень температуры в термометре в зависимости от значения температуры.
В настоящее время я использую аналогичные операторы if в каждом из 14 параметров, который затем определяет, следует ли добавить звездочку в указанном месте (temp> = местоположение) или пустое место (temp <= местоположение).Я уверен, что есть гораздо более эффективный и чистый способ сделать это, используя другой метод, например, встроенный для цикла, регулярного выражения, функции, встроенного метода и т. Д. </p>
Вот пример кода (остерегайтесьescape-символы):
// random value between -35 and 40
double celsius = Math.round(Math.random()*(40-35)-35);
// ASCII Thermometer
String meter = MessageFormat.format(" ______________________\r\n | ^F _ ^C |\r\n | 100 - |{0}| - 40 |\r\n | 90 - |{1}| - 30 |\r\n | 80 - |{2}| - 25 |\r\n | 70 - |{3}| - 20 |\r\n | 60 - |{4}| - 15 |\r\n | 50 - |{5}| - 10 |\r\n | 40 - |{6}| - 5 |\r\n | 30 - |{7}| - 0 |\r\n | 20 - |{8}| - -5 |\r\n | 10 - |{9}| - -10 |\r\n | 0 - |{10}| - -20 |\r\n | -10 - |{11}| - -25 |\r\n | -20 - |{12}| - -30 |\r\n | -30 - |{13}| - -35 |\r\n | '***` |\r\n | (*****) |\r\n | `---' |\r\n |____________________|\r\n\r\n",((celsius >= 35)?"*":" "), ((celsius >= 30)?"*":" "), ((celsius >= 25)?"*":" "), ((celsius >= 20)?"*":" "), ((celsius >= 15)?"*":" "), ((celsius >= 10)?"*":" "), ((celsius >= 5)?"*":" "), ((celsius >= 0)?"*":" "), ((celsius >= -5)?"*":" "), ((celsius >= -10)?"*":" "), ((celsius >= -15)?"*":" "), ((celsius >= -20)?"*":" "), ((celsius >= -25)?"*":" "), ((celsius >= -30)?"*":" "));