美文网首页
OC - 对大写数字转换成罗马数字

OC - 对大写数字转换成罗马数字

作者: 摇曳 | 来源:发表于2017-07-20 19:50 被阅读0次

    //将中文(如'三百二十一')转化成数字(321)

    + (NSString*)convertChineseToNumber:(NSString*)chineseString {

    NSDictionary*chineseNumberDict =@{@"零":@(0),@"一":@(1),@"二":@(2),@"两":@(2),@"三":@(3),@"四":@(4),

    @"五":@(5),@"六":@(6),@"七":@(7),@"八":@(8),@"九":@(9),

    @"十":@(10),@"百":@(100),@"千":@(1000),@"万":@(10000),@"亿":@(100000000)};

    if(chineseString.length==0) {

    returnnil;

    }

    NSString*resultString =nil;

    if(chineseString.length>0) {

    longtotal =0;

    intr =1;

    for(inti=(int)(chineseString.length-1); i>=0; i--) {

    NSString*key = [chineseStringsubstringWithRange:NSMakeRange(i,1)];

    intval = [chineseNumberDict[key]intValue];

    if(val >=10&&0== i) {

    if(val > r) {

    r = val;

    total += val;

    }

    else{

    r *= val;

    }

    }

    elseif(val >=10) {

    if(val > r) {

    r = val;

    }

    else{

    r = r * val;

    }

    }

    else{

    total = total +r * val;

    }

    }

    resultString = [NSStringstringWithFormat:@"%ld", total];

    }

    returnresultString;

    }

    相关文章

      网友评论

          本文标题:OC - 对大写数字转换成罗马数字

          本文链接:https://www.haomeiwen.com/subject/dapjkxtx.html