java小程序,求高手帮忙指导.

StringTokenizerstar=newStringTokenizer(l,",");intid=Integer.parseInt(star.nextToken()... StringTokenizer star = new StringTokenizer(l,",");
int id = Integer.parseInt(star.nextToken());
long time =Long.parseLong(star.nextToken());
//String time=star.nextToken();
String start = star.nextToken();
String high = star.nextToken();
String low = star.nextToken();
String end = star.nextToken();
long time1=20120709080000l;

//String price;
if(time==time1){
buy=start.toString();
//price=buy;
//
}//
else if(time>time1 ){
//第一个问题怎么在这里获取到 前面if条件里面的Buy的值;
set=start.toString();
System.out.println(buy);
//第二:获取到buy值以后该怎么做判断?例如( A-B=4 就输出"OK" ;用if,else 该怎么表达)
//if((buy-set)==2){

// }
}
展开
 我来答
百度网友9d09d17
2012-11-12 · TA获得超过1477个赞
知道小有建树答主
回答量:477
采纳率:100%
帮助的人:303万
展开全部
//第一个问题怎么在这里获取到 前面if条件里面的Buy的值;
在if循环外定义buy
//第二:获取到buy值以后该怎么做判断?例如( A-B=4 就输出"OK" ;用if,else 该怎么表达)
先将buy值转换成int类型再判断
比如 int buyNum = Integer.valueOf(buy).intValue();

大概如下
String buy="";
//String price;
if(time==time1){
buy=start.toString();
//price=buy;
//
}//
else if(time>time1 ){
//第一个问题怎么在这里获取到 前面if条件里面的Buy的值;
String set=start.toString();
System.out.println(buy);
//第二:获取到buy值以后该怎么做判断?例如( A-B=4 就输出"OK" ;用if,else 该怎么表达)
int buyNum = Integer.valueOf(buy).intValue();
int setNum = Integer.valueOf(set).intValue();
if((buyNum -setNum )==2){

}
}
追问
buy获得的值是1587.2 这种带小数的,不是整型的
报错了:
Exception in thread "main" java.lang.NumberFormatException: For input string: "1578.7"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:441)
at java.lang.Long.valueOf(Long.java:540)
at Txtread.main(Txtread.java:41)
追答
那你就把它定义成double类型
int buyNum = Integer.valueOf(buy).intValue();
int setNum = Integer.valueOf(set).intValue();
改成
double buyNum = Double.valueOf(buy);
double setNum = Double.valueOf(set);
chenweishe890
2012-11-12 · TA获得超过654个赞
知道小有建树答主
回答量:480
采纳率:33%
帮助的人:62.1万
展开全部
请问下你是不是这样的逻辑。如果time = time1 就得到buy的值。如果time > time1 就得到set的值。
//然后在判断如果buy - set = 4 的时候就输出ok。
StringTokenizer star = new StringTokenizer(l,",");
int id = Integer.parseInt(star.nextToken());
long time =Long.parseLong(star.nextToken());
//String time=star.nextToken();
String start = star.nextToken();
String high = star.nextToken();
String low = star.nextToken();
String end = star.nextToken();
long time1=20120709080000l;

//取buy和set的值必须先在外面定义。
int buy = 0;//初始值为0。
int set = 0;//初始值为0。

if(time==time1){
//当time == time1 的时候buy会被重新赋值。
buy=Integer.parseInt(start.toString());
}
else if(time>time1){
//当time > time1 的时候buy会被重新赋值。
set=Integer.parseInt(start.toString());
}

//这里就是判断如果A - B = 4 的时候输出OK。
if(buy - set == 4){
System.out.println("OK");
}
更多追问追答
追问
不是你那样额的. 后面的buy - set = 4   这个判断是在time > time1的前提下才可以的.  另外这个buy和set的值都有一位小数点.这个buy的值 是固定的.只能是在第一个if下获取的值.
追答
你的buy的值一定要在前面的if获得吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我爱李沛霞
2012-11-12 · TA获得超过896个赞
知道小有建树答主
回答量:385
采纳率:100%
帮助的人:167万
展开全部
第一,获得buy。直接在最前面声明就好了。String buy;
第二,判断的话,那么必须把buy和set转化为整数才是,字符串是不能相减的。转化还是用你上面的parseInt就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友13eb05f
2012-11-12 · 超过12用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:28.7万
展开全部
看看你if中的表达式。你在满足了第二天条件,第一个还好执行吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式