|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
从一个编程语言的普及程度来将,一个好的IDE是至关中要的,而现在的java的IDE虽然已经很好了,但是和.net比起来还是稍微差一些的,这是个客观事实。java要想普及的更好。DE是必须加以改进的。importjava.util.Date;
publicclasstestcalc2
{
Stringa;
intlen_of_str;
interr;//err用于发明哪一个字符是堕落字符就是第一个堕落字符串的下标,初始值为-1,暗示无错
intindex;
publictestcalc2(Stringstr)
{
a=str+"+";
len_of_str=a.length();
err=-1;
index=0;
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%"+a+len_of_str);
}
publicdoublegetnextnum()
{
intpreindex=index,countofdot=0;
if(a.charAt(index)==-)
index++;
if(!Character.isDigit(a.charAt(index)))
{
err=index;
return0;
}
while((index<len_of_str)&&
(Character.isDigit(a.charAt(index))||a.charAt(index)==.))
{
if(a.charAt(index)==.)
{
countofdot++;
}
index++;
if(countofdot==2)
{
err=index;
return0;
}
}
returnDouble.valueOf(a.substring(preindex,index)).doubleValue();
}
publicchargetnextop()
{
charch=a.charAt(index);
if((ch!=+)&&(ch!=-)&&(ch!=*)&&(ch!=/))
{
err=index;
ch=;
returnch;
}
index++;
returnch;
}
publicdoublecalcuvalue()
{
longstart=System.currentTimeMillis();
Dated=newDate();
longnow=d.getTime(),dif;
charch;
booleanminusflag=false,multiflag=false,dividflag=false;
doubletotal=0,next=0,num=0;//nextusedtobe*or/
while(index<len_of_str)
{
num=getnextnum();
if(err!=-1)
{
System.out.println("err!?!trytogetnextnumbut"+
"thecharatindex"+err+"iswrong");
return0;
}
System.out.println("indexafter"+index);
ch=getnextop();
if(err!=-1)
{
System.out.println("err!?!trytogetnextopbut"+
"thecharatindex"+err+"iswrong");
return0;
}
System.out.println("indexafter"+index);
switch(ch)
{
case+:
if(multiflag)
{
next=next*num;
}
elseif(dividflag)
{
next=next/num;
}
else
{
next=num;
}
if(minusflag)
{
next=-next;
}
total=total+next;
minusflag=false;
multiflag=false;
dividflag=false;
break;
case-:
if(multiflag)
{
next=next*num;
}
elseif(dividflag)
{
next=next/num;
}
else
{
next=num;
}
if(minusflag)
{
next=-next;
}
total=total+next;
minusflag=true;
multiflag=false;
dividflag=false;
break;
case*:
if(multiflag)
{
next=next*num;
}
elseif(dividflag)
{
next=next/num;
}
else
{
next=num;
}
multiflag=true;
dividflag=false;
break;
case/:
if(multiflag)
{
next=next*num;
}
elseif(dividflag)
{
next=next/num;
}
else
{
next=num;
}
dividflag=true;
multiflag=false;
break;
default://impossible,alreadyhaserr
}
System.out.println("ch"+ch+"num"+num+"total"+total+
"next"+next+"-"+minusflag+"*"+
multiflag+"/"+dividflag);
}//while
returntotal;
}
你说是sun公司对她研究的透还是微软?针对自己工具开发的.net性能上肯定会站上风的。 |
|