From a599172b4f3419364845ed70958bad6e4027432e Mon Sep 17 00:00:00 2001 From: dazer007 Date: Fri, 19 Jan 2024 22:30:22 +0800 Subject: [PATCH] =?UTF-8?q?NumberUtil=E6=96=B0=E5=A2=9E=E6=AD=A3=E6=95=B4?= =?UTF-8?q?=E6=95=B0=E8=BD=AC=E7=BD=97=E9=A9=AC=E6=95=B0=E5=AD=97=EF=BC=8C?= =?UTF-8?q?=E9=99=90=E5=88=B6[1,3999]=E7=9A=84=E6=AD=A3=E6=95=B4=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/hutool/core/math/NumberUtil.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberUtil.java index 561a86959..6088a4395 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberUtil.java @@ -1554,4 +1554,37 @@ public class NumberUtil extends NumberValidator { } return equals(toBigDecimal(n), BigDecimal.ZERO); } + + /** + * 整数转罗马数字
+ * 限制:[1,3999]的正整数 + * + * + * @param num [1,3999]的正整数 + * @return 罗马数字 + * @since 6.0.0 + * @author dazer + */ + public static String intToRoman(int num) { + if (num > 3999 || num < 1 ){ + return ""; + } + String[] thousands = {"", "M", "MM", "MMM"}; + String[] hundreds = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"}; + String[] tens = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"}; + String[] ones = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"}; + + return thousands[num / 1000] + + hundreds[(num % 1000) / 100] + + tens[(num % 100) / 10] + + ones[num % 10]; + } }