java求助Exception in thread "main " java.util.NoSuchElementException

publicstaticvoidmain(Stringargs[])throwsIOException{{intb=0;//编号Stringd=newString("b"... public static void main(String args[])throws IOException{

{
int b=0;//编号
String d=new String("b");//单价
String m=new String("c");//名称
BufferedReader in =
new BufferedReader(new FileReader("Toys.txt"));
String s = new String();
s=in.readLine();
StringTokenizer st2 = new StringTokenizer(s,"\t\b\n",false);
b= Integer.parseInt(st2.nextToken().trim());
m=st2.nextToken().trim();
d=st2.nextToken().trim();
文件Toys.txt中写的是:12 鲨鱼 23

编译没问题,但是运行的时候就出了这个,不明白究竟是哪里错了,求大神帮助!
没有多少分了,所以分给的少请别介意。
谢谢!
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
百度网友799369c
2013-11-30 · TA获得超过562个赞
知道小有建树答主
回答量:514
采纳率:66%
帮助的人:160万
展开全部
main后面有两个大括号,编译怎么可能没问题,你在这里提问的时候多打了一个吧!!!
你的错误是没有下一个元素了,意思是里面的东西你分割出来的时候没有3个,就是没有分割开。由于不知道你Toys.txt里面到底是怎么打的,有没有\t\b\n我也不知道,反正你debug一下,自己看看哪里没分割开
追问
额,main后面的大括号是多打了,不是那个问题。文件Toys.txt中写的是:12    鲨鱼    23,能再指点一下吗?解释有些没有看明白,什么叫做分割开......谢谢!
追答
StringTokenizer st2 = new StringTokenizer(s,"\t\b\n",false);这句话意思应该是用引号里面的字符来分割字符串。st2.nextToken()这个就是取到下一个分割出来的值。比如说123,你用2来分割,那么分割出来的应该是1和3。
至于你这个,我给个建议,你可以试试把12和鲨鱼和23之间的空格改成Tab(就是上面的\t)形成的空格,然后再运行看看
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
java小黑马
2013-11-29 · TA获得超过2873个赞
知道大有可为答主
回答量:3119
采纳率:53%
帮助的人:577万
展开全部
为什么main方法后面连着写了两个{呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式