初次运行java小程序,编译通过,但是运行时出现NoSuchMethodError错误,哪位老兄帮忙给调试一下?

smartlj 2005-10-12 05:17:39
下面的两个小程序本来是两个函数,原先用在PB里面,用来验证身份证号码的,没想到改装成java,就错误百出,还请那位老兄帮忙给调一下,不胜感激!
小程序:testsfz.java
import java.io.*;
import java.lang.*;
import java.math.*;
import java.lang.String.*;
class testsfz
{

public static int main(String[] args)
{

String ls_date="";
String ls_xb="";
String as_sfz="";
String ls_birth="";
String ls_sex="";
String ls_return="";

try
{
BufferedReader buffer=new BufferedReader(new InputStreamReader(System.in));
as_sfz=buffer.readLine();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}



f_get_sfz_validhb f1 = new f_get_sfz_validhb();


switch(as_sfz.length())
{
case 15://15λµÄÉí·ÝÖ¤

ls_date="19"+ as_sfz.substring(7,2)+"-"+as_sfz.substring(9,2)+"-"+as_sfz.substring(11,2);//»ñµÃ³öÉúÈÕÆÚ

/* if ((as_sfz.substring(15,1)).indexOf("13579")>0)
{
ls_xb="ÄÐ";
}


else
{
ls_xb="Å®";
}


*/

/*
if (!isTimeSet(ls_date))
{
System.out.println("ËùÊäÈëµÄºÅÂë²»ÊÇÉí·ÝÖ¤ºÅÂë");

//messagebox("ÌáʾÐÅÏ¢","ËùÊäÈëµÄºÅÂë²»ÊÇÉí·ÝÖ¤ºÅÂë")

return -1;
}



else
{
return 0;
}


*/


case 18://18λµÄÉí·ÝÖ¤

ls_date=as_sfz.substring(7,4)+"-"+as_sfz.substring(11,2)+"-"+as_sfz.substring(13,2);

//if (pos("13579",as_sfz.substring(17,1))>0 )

/* if ((as_sfz.substring(15,1)).indexOf("13579")>0)
{
ls_xb="ÄÐ";
}

else
{
ls_xb="Å®";
}


*/

if (!as_sfz.substring(18,1).equals (f1.getid(as_sfz.substring(1,17))))//ÅжÏУÑéÂë

{
System.out.println("ËùÊäÈëµÄÉí·ÝÖ¤ºÅÂëµÚÊ®°ËλУÑéÂë²»¶Ô");
// messagebox("ÌáʾÐÅÏ¢",".");

return -1;
}


/*

if (!isTimeSet(ls_date)) //ÅжÏÈÕÆÚÊÇ·ñÕýÈ·
{
System.out.println("ËùÊäÈëµÄºÅÂë²»ÊÇÉí·ÝÖ¤ºÅÂë");
//messagebox("ÌáʾÐÅÏ¢","ËùÊäÈëµÄºÅÂë²»ÊÇÉí·ÝÖ¤ºÅÂë");

return -1;
}


else
{
return 0;
}*/

default:

return -1;

}
}
}
小程序f_get_sfz_validhb

import java.lang.String.*;
import java.lang.*;
import java.math.*;
import java.io.*;
class f_get_sfz_validhb
{

public String getid(String a_sfz)
{
String ls_sfz,ls_result;

int li_ai,li_wi,li_sum=0,li_mod,li_result;

ls_sfz = a_sfz;
if (ls_sfz.length()==15 || ls_sfz.length()==17)
{
if (ls_sfz.length()==15)
{

ls_sfz=ls_sfz.substring(1,6) + "19" + ls_sfz.substring(7,9);
}
for (int i=2;i<=18;i++)
{
li_ai=Integer.parseInt(ls_sfz.substring((19-i),1)); //to integer

li_wi=2^(i - 1)%11;

li_sum=li_sum + (li_ai * li_wi);

}
li_mod=li_sum%11;

li_result=12 - li_mod;

if (li_result>=10 )
{
if (li_result==10)
{
return "X";
}
else
{
li_result=li_result - 11;
ls_result = String.valueOf(li_result);
return ls_result;
}
}
else
{
ls_result = String.valueOf(li_result);
return ls_result;

}
}
else
{
return "E";
}
}
}





...全文
153 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
princelove 2005-10-13
  • 打赏
  • 举报
回复
我告诉你吧。
as_sfz.substring(7,2)
as_sfz.substring(11,2
取值不对下界超标, 内存益出
zdsxj2002 2005-10-12
  • 打赏
  • 举报
回复
NoSuchMethodError 是没有找到方法错误。。。。你还是发错误信息吧
crazycy 2005-10-12
  • 打赏
  • 举报
回复
可能我们更关注的是具体的错误信息,嘿嘿
smartlj 2005-10-12
  • 打赏
  • 举报
回复
程序里面出了些乱码,都被注掉了,应该不会影响吧,拜托了!

62,629

社区成员

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

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