From 30f93a0f5615515df2bfe1fdbbadab0308ca0471 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 13 三月 2024 21:50:16 +0800
Subject: [PATCH] 集成相关更改
---
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/Test.java | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 50 insertions(+), 1 deletions(-)
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/Test.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/Test.java
index df4e461..e3c6266 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/Test.java
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/Test.java
@@ -1,10 +1,17 @@
package com.vci.rmip.code.client.codeapply.Apply410;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.regex.Pattern;
+
public class Test {
public static void main(String[] args) {
- String res=intToRoman(101);
+ String res=intToRoman(1004);
System.out.println("缃楅┈鏁板瓧->"+res);
+ boolean isInterger=isRomanNumber(1004+"");
+ int resInt=r2a(res);
+ System.out.println("闃挎媺浼暟瀛�->"+resInt);
}
public static String intToRoman(int num) {
int[] values={1000,900,500,400,100,90,50,40,10,9,5,4,1};
@@ -26,4 +33,46 @@
String I[] = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
return M[num/1000]+C[(num%1000)/100]+X[(num%100)/10]+I[num%10];
}
+ /***
+ * 鏍¢獙鏄惁鏄綏椹暟瀛�
+ * @param s
+ * @return
+ */
+ public static boolean isRomanNumber(String s) {
+ // 妫�鏌ヨ緭鍏ョ殑瀛楃涓叉槸鍚︿负绌�
+ if (s == null || s.length() == 0) {
+ return false;
+ }
+ // 灏嗚緭鍏ョ殑瀛楃涓茶浆鎹负澶у啓瀛楁瘝
+ s = s.toUpperCase();
+ // 杩斿洖缁撴灉
+ Pattern pattern = Pattern.compile("^M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$");
+ return pattern.matcher(s ).matches();
+ }
+ /**
+ * 鎶婄綏椹暟瀛楄浆鎹负闃挎媺浼暟瀛�
+ *
+ * @param m
+ * @return
+ */
+ public static int r2a(String m) {
+ int graph[] = new int[400];
+ graph['I'] = 1;
+ graph['V'] = 5;
+ graph['X'] = 10;
+ graph['L'] = 50;
+ graph['C'] = 100;
+ graph['D'] = 500;
+ graph['M'] = 1000;
+ char[] num = m.toCharArray();
+ int sum = graph[num[0]];
+ for (int i = 0; i < num.length - 1; i++) {
+ if (graph[num[i]] >= graph[num[i + 1]]) {
+ sum += graph[num[i + 1]];
+ } else {
+ sum = sum + graph[num[i + 1]] - 2 * graph[num[i]];
+ }
+ }
+ return sum;
+ }
}
--
Gitblit v1.9.3