Как проверить длину номера в JRules
Я новичок в кодировании JRules. Это может выглядеть как простой вопрос. Я хотел бы проверить длину числа в коде JRules. Как написать код для этого. Фраза "длина" ожидает строку. Я пытался использовать toString() для преобразования числа в строку. Но это не работает. Пожалуйста, дайте некоторую идею.
2 ответа
Вы можете сделать это разными способами, совсем как в Риме.:)
1 / В вашей Java:
public static int getIntLength(final int myLovelyNumber) {
return (new Integer(myLovelyNumber)).toString().length();
}
Затем вы добавляете эту прекрасную функцию в свою спецификацию и произносите ее словесно. Лично я бы создал отдельную библиотеку для таких помощников. Обновление сделает свое дело.
2 / В вашей спецификации:
Я буду считать, что вы начинаете с нуля
a / Создайте "виртуальный" объект в вашей спецификации (лично я бы создал отдельную спецификацию для "виртуальных" объектов) и установите для "имени выполнения" (или чего-то подобного) значение java.lang.object.
b/ создать "виртуальный" статический метод в "виртуальном" объекте с одним параметром: целое число, возвращающее a: int
c / в B2X вашего нового "виртуального" метода добавьте:
return param.toString (). length ();
д / вербализировать метод
Конечно, вам нужно проверить нулевое значение в Java или B2X.
Это основные способы сделать это. Можно найти более хитрые способы, но для новичка (или нет) это хороший подход. Надеюсь, поможет.
PS: Если вас это устраивает, отметьте ответ как правильный:)
А как насчет негативов? Ваше решение будет считать "-" как существенное значение.
Так что часть (1) должна быть...
public static int getIntLength(final int myLovelyNumber) {
return (Integer.valueOf(Math.abs(myLovelyNumber))).toString().length();
}
Также int не может быть нулевым. Когда вы придете, чтобы проверить это, он будет нулевым.