数组索引越界异常

tfcoder 2010-09-20 09:40:15
public class NumRmd
{
private String[] hanArr={"壹","贰","叁","肆","伍","陆","柒","捌","玖"};
private String[] unitArr={"拾","佰","仟"};
private String toHanStr(String numStr)
{
String result= "";
int numLen=numStr.length();
for(int i=0;i<numLen;i++)
{
int num=numStr.charAt(i)-48;
if(i!=numLen-1 && num!=0)
{
result += hanArr[num]+unitArr[numLen-2-i];
}
else
{
result += hanArr[num];
}
}
return result;
}
public static void main(String[] args)
{
NumRmd nr=new NumRmd();
System.out.println(nr.toHanStr("619"));
}
}
不清楚为什么 会发生这样情况那怎么改呢?
...全文
163 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanRivergo 2010-09-22
  • 打赏
  • 举报
回复
debug:调试。eclipse里就有。慢慢来,你能行!
jaisokforron 2010-09-21
  • 打赏
  • 举报
回复
一楼正解,打印一些变量,一看就知道了
tfcoder 2010-09-21
  • 打赏
  • 举报
回复
debug是什么意思
vesselmax 2010-09-20
  • 打赏
  • 举报
回复
可否debug逐步执行看一下
  • 打赏
  • 举报
回复


有错误才能学到东西啊。。。。如果一切太平坦势必什么都学得不踏实!
茫茫大海 2010-09-20
  • 打赏
  • 举报
回复

public class NumRmd {
private String[] hanArr = { "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
private String[] unitArr = { "拾", "佰", "仟" };

private String toHanStr(String numStr) {
String result = "";
int numLen = numStr.length();
for (int i = 0; i < numLen; i++) {
int num = numStr.charAt(i) - 48;
//下面两处的num改为num-1,因为按你声明的,下标0对应壹,依次类推
if (i != numLen - 1 && num != 0) {
result += hanArr[num-1] + unitArr[numLen - 2 - i];
} else {
result += hanArr[num-1];
}
}
return result;
}

public static void main(String[] args) {
NumRmd nr = new NumRmd();
System.out.println(nr.toHanStr("619"));
}
}

楼主以后碰到这种情况,自己debug进去看看!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧