一道关于数组的例题,红色部分没看懂

没看懂“numLen - 2 - i”的含义,高手帮帮忙

import java.util.Arrays;

public class Num2Rmb{

private String[] hanArr = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};

private String[] unitArr = {"拾","佰","仟"};

    private String[] divide(double num){

long zheng = (long)num;

long xiao = Math.round((num - zheng) * 100);

//把整数转换为字符串,两种方法

return new String[]{zheng + "", String.valueOf(xiao)};

}

private String toHanStr(String numStr){

String result = "";

int numLen = numStr.length();

for(int i = 0; i < numLen; i++){

//把char类型数字转换成int,因为他们的ASCII码值恰好相差48

//因此把char型数字减去48得到int型数字,例如'4'被转换成4。

int num = numStr.charAt(i) - 48;

//如果不是最后一位数字,而且数字不是零,则需添加单位(千百十)

if(i != numLen - 1 && num != 0){

result += hanArr[num] + unitArr[numLen - 2 - i]; // 没搞懂这个 numLen-2-i

}

else{

result += hanArr[num];

}

}

return result;

}

public static void main(String[] args){

Num2Rmb nr = new Num2Rmb();

System.out.println(Arrays.toString(nr.divide(236711125.123)));

System.out.println(nr.toHanStr("6109"));

}

}

请输入图片描述

回答:

unitArr = {"拾","佰","仟"};

本来numLen-i就可以表达i是这个数的第几位数,可是这里第四位数要的是,在unitArr索引是2.

第三位,佰 ,索引是1;第二位,拾,索引是0.

如果unitArr={"无","个","拾","佰","仟"},这样直接用unitArr[numLen-i]就可以拿到你要的文字,可是现在unitArr少了头两个,你说,我们是不是该改成unitArr[numLen-i-2]呢?

以上是 一道关于数组的例题,红色部分没看懂 的全部内容, 来源链接: utcz.com/p/171076.html

回到顶部