作者jeeyi345 (letmein)
看板java
标题Re: [问题] 请问如何输入二维阵列
时间Sun Jun 9 19:15:57 2013
※ 引述《PsMonkey (痞子军团团长)》之铭言:
: 版主的功能就是当坏人吗? [远目]
: ※ 引述《jeeyi345 (letmein)》之铭言:
: : 我要模拟Banker's Algorithm
: 你就算要模拟 Google 演算法也无所谓
只是大概解释一下为何需要二维阵列
: : 所以需要用二维阵列计算,我用读txt档的方式输入
: :
: 上面这段程式,对於看的人来说有什麽问题呢?
: 1. 没有良好缩排
: 2. 有奇怪的注解混进来了,真正的注解反而没半个
: 3. 不知道 `input` 是怎麽来的,连是哪个 class 都不知道
: 4. 不知道 TXT 档内容是啥样子
public static void main(String[] args) throws Exception {
int acin[][]=new int[50][3];
File allocin = new File("D:\\alloc.txt"); //alloc.txt位置;预设为D
Scanner input = new Scanner(allocin);//准备读取alloc.txt
while(input.hasNext()){
for(int j=0;j<acin[j].length;j++){
for(int i=0;i<3;i++){
acin[j][i]=input.nextInt();
System.out.print(acin[j][i]);
}
System.out.println();
}
}
input.close();
}
txt档内容:
0 1 0
2 0 0
3 0 2
2 1 1
0 0 2
输出
010
200
302
211
002
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
: : 请问该怎麽解决呢?
: 1. 请搞清楚那个不知道是什麽的 input 的 hasNext() / nextInt() 是啥意思
: 2. 请搞清楚你三层回圈之间的关系,尤其是扯到 1 的部份
: 3. 说不定根本就是你的 TXT 不能满足 XD
就我看说明理解,hasNext()是当还有值时输入,nextInt()是输入int
因为我看错误叙述猜测是没有值,而acin[][]还没用完产生的错误,
想用hasNext() break跳出来解决,但没办法
因为写一维阵列时没有遇过这个问题,想请教各位高手
这两次是在这初次发文,请多包含
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.162.95.64
1F:推 cuteclare:你一次读了九个吧? 06/09 19:23
2F:→ jeeyi345:输出看起来都读了,不明白你的意思耶,不好意思 06/09 20:02
3F:推 mars90226:for(int j=0;j<acin[j].length;j++) 你不觉得怪怪的吗? 06/09 20:30
4F:→ jeeyi345:本来是acin.length,根据前一篇文章回应中修改的。 06/09 20:50
5F:→ gmoz:因为你没有搞懂hasNext()跟NextInt()的差别 你可以想想看 06/09 21:05
6F:推 gmoz:跟[][]没用完100%一点关系都没有 提示:认的对象不同 06/09 21:10
7F:→ jeeyi345:我想到条件改hasNextInt()或阵列改String,但错误一样 06/09 21:24
8F:→ mars90226:版主是在说你的第二个for吧? 06/09 21:25
9F:→ mars90226:你用3个回圈去读二维阵列,你想一下是不是怪怪的? 06/09 21:28
10F:推 cuteclare:1(input.hasNex) < 3*3(acin[j].length*3)个input.next 06/09 21:31
11F:→ jeeyi345:直接改acin[5][3]就可以,二维阵列不能多给空间在裁减罗 06/09 21:43
12F:→ jeeyi345:一维阵列输入时我是那麽做的 06/09 21:49
13F:推 PsMonkey:回文跟推文已经算给你答案了,其余得靠你自己努力了 06/09 21:50
14F:→ jeeyi345:谢谢各位热心回复,我再看推文好好想 资质驽钝啊 06/09 22:03
15F:推 PsMonkey:这无关资质,而是凡人必经的过程(我到现在还是常常遇到 06/09 22:11
16F:推 cuteclare:天啊~板主是凡人(大吃一惊! 06/09 22:18
17F:→ PsMonkey:==" 楼上都没看版标吗? [泪目] 06/09 22:19
18F:→ jeeyi345:原来PsMonkey是板主XD初来不识泰山 推文感动到,有动力了 06/09 22:32
19F:→ gmoz:提示:你的1次while = 跑3次nextInt,检查的地方要改. 06/09 22:36
20F:→ gmoz:建议你先学会操作IDE的单步执行来除错 06/09 22:37
21F:→ gmoz:改阵列长度可以是因为数量刚好 不要再提阵列了XD 06/09 22:39
22F:→ jeeyi345:试出来了\^0^/谢谢谢谢谢谢!要感谢的人太多了,就谢天吧 06/09 23:02
23F:→ jeeyi345:感觉各位下笔前都很清楚,不像我错了明示暗示还看不出来 06/09 23:06
24F:→ gtu001:你只在最外层检查hasnext不行,里面每取值一次都要检查 06/10 21:25
25F:→ jej:初次看到code的时候还是觉得看FileInputStream可能比较好 06/11 12:10
26F:→ jej:看到档案内容後我就...喷了.... 06/11 12:12