日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 罗马数字_JAVA,罗马数字与阿拉伯数字的互转

發布時間:2023/12/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 罗马数字_JAVA,罗马数字与阿拉伯数字的互转 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本人逛貼吧時候遇到某人求助,于是幫他實現了一下。下面是阿拉伯轉羅馬的數字。

import?java.util.ArrayList;

import?java.util.regex.Matcher;

import?java.util.regex.Pattern;

public?class?TOroma?{

private?int?alab;

TOroma(int?alab){

this.alab=alab;

}

public?void?zhuanhuan(){

String?str="";

String?x="";//用來存儲最終的結果

String?tp=String.valueOf(alab);//轉換為String,方便匹配

char?temp[]=tp.toCharArray();//將String轉換為數字,方便把每個數字取出然后獲得它的大小方便匹配。

//開始獲取大小

for(int?i=0;i

int?s=(int)((temp[i]-48)*Math.pow(10,?temp.length-i-1));

str+=s;

}

String?regex=null;

String?s="'',0,I,1,II,2,III,3,IV,4,V,5,VI,6,VII,7,VIII,8,IX,9,X,10,XX,20,XXX,30,XL,40,L,50,LX,60,LXX,70,LXXX,80,XC,90,C,100,CC,200,CCC,300,CD,400,D,500,DC,600,DCC,700,DCCC,800,CM,900,M,1000,MM,2000";

String?c[]=s.split(",");//將字符串打散,方便存入到list中去

Pattern?p;//正則

ArrayList?list=new?ArrayList();//聲明一個容器來存儲這些對象

for(int?t=c.length-2;t>0;t=t-2){

t?m=new?t(c[t],Integer.parseInt(c[t+1]));

list.add(m);

}

//遍歷循環,正則匹配

for(int?i=0;i

int?_alab=list.get(i).getAlab();

regex="^("+_alab+")";

p=Pattern.compile(regex);

Matcher?matcher=p.matcher(str);

if(matcher.find()){

x+=list.get(i).getRoma();

str=str.substring(String.valueOf(list.get(i).getAlab()).length());

}

}

System.out.println(tp+"----------"+x);//輸出轉換后的值,這里就是結果。

}

//下面開始測試:

public?static?void?main(String[]?args)?{

TOroma?t=new?TOroma(567);//這里我只寫到了2000,所以,能求的值必須是2000以下,

t.zhuanhuan();

}

}

class?t{

private?String?roma;

private?int?alab;

public?t(String?roma,int?alab){

this.roma=roma;

this.alab=alab;

}

public?String?getRoma()?{

return?roma;

}

public?void?setRoma(String?roma)?{

this.roma?=?roma;

}

public?int?getAlab()?{

return?alab;

}

public?void?setAlab(int?alab)?{

this.alab?=?alab;

}

}

羅馬轉阿拉伯

import?java.util.ArrayList;

import?java.util.regex.*;

//定義一個類,用來存儲一個阿拉伯數字所對應的羅馬字母

public?class?hell?{

private?String?roma;

private?int?alab;

hell(String?roma,int?alab){

this.roma=roma;

this.alab=alab;

}

public?static?void?main(String[]?args)?{

//??public?void?alab_TO_roma(String?roma){

//???return?;

//??}

int?num=0;

String?str="DLXVII";//測試用的數據,你也可以自己寫一個分類

String?regex=null;

String?s="'',0,I,1,II,2,III,3,IV,4,V,5,VI,6,VII,7,VIII,8,IX,9,X,10,XX,20,XXX,30,XL,40,L,50,LX,60,LXX,70,LXXX,80,XC,90,C,100,CC,200,CCC,300,CD,400,D,500,DC,600,DCC,700,DCCC,800,CM,900,M,1000,MM,2000";

String?c[]=s.split(",");//將字符串打散,方便存入到list中去

Pattern?p;//正則

ArrayList?list=new?ArrayList();//聲明一個容器來存儲這些對象

for(int?t=c.length-2;t>0;t=t-2){

hell?m=new?hell(c[t],Integer.parseInt(c[t+1]));

list.add(m);

}

//遍歷循環,正則匹配

for(int?i=0;i

int?_alab=list.get(i).alab;

String?_roma=list.get(i).roma;

regex="^("+_roma+")";

p=Pattern.compile(regex,Pattern.CASE_INSENSITIVE);

Matcher?matcher=p.matcher(str);

if(matcher.find()){

num+=_alab;

str=str.substring(_roma.length());

}

}

System.out.println(num);//輸出轉換后的值

}

}

第二個就寫的沒有那么規范了,因為快下班了,嘿嘿。。不過功能還是實現了的。//*對于變量名勿噴。。。*/

總結

以上是生活随笔為你收集整理的java 罗马数字_JAVA,罗马数字与阿拉伯数字的互转的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。