java 判断是否是罗马_如何只使用正则表达式匹配有效的罗马数字?
我会为我的工作写函数 . 这是PowerShell中的两个罗马数字函数 .
function ConvertFrom-RomanNumeral
{
.SYNOPSIS
Converts a Roman numeral to a number.
.DESCRIPTION
Converts a Roman numeral - in the range of I..MMMCMXCIX - to a number.
.EXAMPLE
ConvertFrom-RomanNumeral -Numeral MMXIV
.EXAMPLE
"MMXIV" | ConvertFrom-RomanNumeral
#>
[CmdletBinding()]
[OutputType([int])]
Param
(
[Parameter(Mandatory=$true,
HelpMessage="Enter a roman numeral in the range I..MMMCMXCIX",
ValueFromPipeline=$true,
Position=0)]
[ValidatePattern("^M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$")]
[string]
$Numeral
)
Begin
{
$RomanToDecimal = [ordered]@{
M = 1000
CM = 900
D = 500
CD = 400
C = 100
XC = 90
L = 50
X = 10
IX = 9
V = 5
IV = 4
I = 1
}
}
Process
{
$roman = $Numeral + " "
$value = 0
do
{
foreach ($key in $RomanToDecimal.Keys)
{
if ($key.Length -eq 1)
{
if ($key -match $roman.Substring(0,1))
{
$value += $RomanToDecimal.$key
$roman = $roman.Substring(1)
break
}
}
else
{
if ($key -match $roman.Substring(0,2))
{
$value += $RomanToDecimal.$key
$roman = $roman.Substring(2)
break
}
}
}
}
until ($roman -eq " ")
$value
}
End
{
}
}
function ConvertTo-RomanNumeral
{
.SYNOPSIS
Converts a number to a Roman numeral.
.DESCRIPTION
Converts a number - in the range of 1 to 3,999 - to a Roman numeral.
.EXAMPLE
ConvertTo-RomanNumeral -Number (Get-Date).Year
.EXAMPLE
(Get-Date).Year | ConvertTo-RomanNumeral
#>
[CmdletBinding()]
[OutputType([string])]
Param
(
[Parameter(Mandatory=$true,
HelpMessage="Enter an integer in the range 1 to 3,999",
ValueFromPipeline=$true,
Position=0)]
[ValidateRange(1,3999)]
[int]
$Number
)
Begin
{
$DecimalToRoman = @{
Ones = "","I","II","III","IV","V","VI","VII","VIII","IX";
Tens = "","X","XX","XXX","XL","L","LX","LXX","LXXX","XC";
Hundreds = "","C","CC","CCC","CD","D","DC","DCC","DCCC","CM";
Thousands = "","M","MM","MMM"
}
$column = @{Thousands = 0; Hundreds = 1; Tens = 2; Ones = 3}
}
Process
{
[int[]]$digits = $Number.ToString().PadLeft(4,"0").ToCharArray() |
ForEach-Object { [Char]::GetNumericValue($_) }
$RomanNumeral = ""
$RomanNumeral += $DecimalToRoman.Thousands[$digits[$column.Thousands]]
$RomanNumeral += $DecimalToRoman.Hundreds[$digits[$column.Hundreds]]
$RomanNumeral += $DecimalToRoman.Tens[$digits[$column.Tens]]
$RomanNumeral += $DecimalToRoman.Ones[$digits[$column.Ones]]
$RomanNumeral
}
End
{
}
}
java 判断是否是罗马_如何只使用正则表达式匹配有效的罗马数字?相关推荐
- java 判断视频是否损坏_内容研究(或如何判断您的内容是否损坏)
java 判断视频是否损坏 您的内容效果如何? (How well is your content working?) In the age of data-worship, most site ow ...
- java判断括号是否闭合_用 java 判断 括号是否完全匹配
用 java 判断 括号是否完全匹配: package emp; import java.util.Stack; public class Parentheses { public static vo ...
- java判断是否第一次出现_利用java判断字符首次出现的位置,java替换最后一个特定字符...
利用java判断字符首次出现的位置利用爪哇判断字符首次出现的位置, 目的: (学习视频分享:java视频教程 实现代码如下: 导入Java.util.收藏品: 导入Java.util.LinkedLi ...
- java 判断手机运营商_如何用java判断手机号运营商?
如何用java实现判断手机号的运营商?因为每个号段都是工信部规定划分给指定运营商的,所以我们可以通过手机号码的号段来判断. 现在手机号的号段那么多,要怎样方便的的判断呢?于是我们就想到了正则表达式,在 ...
- JAVA 判断简单密码算法_十道简单算法题二【Java实现】
前言 清明不小心就拖了两天没更了-- 这是十道算法题的第二篇了-上一篇回顾:十道简单算法题 最近在回顾以前使用C写过的数据结构和算法的东西,发现自己的算法和数据结构是真的薄弱,现在用Java改写一下, ...
- java 判断非ascii字符_文件名中的JavaMail和非ASCII字符
我可以在 JavaMail中发送具有非ascii文件名的附件,但我无法下载它们.我特意为那些文件名包含非ascii字符的附件获取java.io.FileNotFoundException. 仅供参考: ...
- java 判断二叉树是否平衡_剑指Offer - 判断二叉树是否是平衡二叉树
平衡二叉树的条件:为空或者子树高度之差的绝对值小于等于1,且子树也是平衡二叉树 最直接的做法,遍历每个结点,借助一个获取树深度的递归函数,根据该结点的左右子树高度差判断是否平衡,然后递归地对左右子树进 ...
- java 判断日期是同一天_如何检查Java中的两个日期是否在同一天
虽然根据java.util.Date的日期组件部分给出的答案在很多部分都是足够的,但我要强调的是,java.util.Date不是日期,而是一种以毫秒为单位测量的UNIX时间戳.那是什么后果? 日期时 ...
- java判断括号是否闭合_【python每日一练】有效括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认 ...
最新文章
- 好记性不如烂笔杆-android学习笔记十四 EditText 画行,解决光标压线问题
- Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上)
- php会员权限分析,PHP会员权限控制-很详细(转)
- 一个不成功人士的“成功之道”
- 使用SignalR从服务端主动推送警报日志到各种终端(桌面、移动、网页)
- php的具体配置学习笔记
- android获取wifi mac地址吗,Android获取当前WiFi的MAC地址-适配所有版本
- C++直接修改std::set元素的方法
- setupUi()引起的麻烦
- Windows传统取证的一些笔记
- python简明教程_04
- 一句口诀记住 OSI七层协议模型
- C语言输出大写金额,编程实现,输入一个人民币小写金额值,转化为大写金额值输出。先实现基本功能...
- 基于微信小程序的在线考试系统【毕业设计源码】
- P5339 [TJOI2019]唱、跳、rap和篮球
- 网络传输中的那些编码之-chr和hex(base16)
- ubuntu 安装jdk 1.8
- 青龙面板 JDC2.0.0扫码获取cookie教程
- UBUNTU 18.04 GPU + miniconda3 + pytorch + yolo v5 安装测试
- 用于信号处理的Xilinx FPGA XC7K325T PCIeX8 FMC处理板卡
热门文章
- MongoDB——ISODate日期类型
- 触摸!天空龙 - 锻炼极速反应力
- Dev-C++下面的编译状态栏信息不显示
- sql语句重点基础:查询语句
- html中波浪线线怎么设置,如何在PPT中加波浪线?
- 使用Hystrix实现自动降级与依赖隔离
- 统计词频并输出高频词汇
- python 多态app_**python多态
- java使用cmd编译中文时错误,解决Notepad++编写的Java程序在cmd窗口编译时中文注释报错问题...
- sshd:root@notty: linux 被暴力登录处理