Wednesday 15 May 2013

java - for loop filling array[0] but thats it -



java - for loop filling array[0] but thats it -

the aim of loop create new currentjob each line of text file , store in array. loop stores first line of text doesn't store else.

public static void job() { file file = new file("dailyjobs.txt"); seek { scanner scanner = new scanner(file); while(scanner.hasnextline()) { string line = scanner.nextline(); scanner linescanner = new scanner(line); linescanner.usedelimiter(","); job[] jobarray = new job[30]; (int = 0; < jobarray.length; i++) { job currentjob = new job(); int jid = linescanner.nextint(); int cid = linescanner.nextint(); string rego = linescanner.next(); string date = linescanner.next(); string day = linescanner.next(); double fee = linescanner.nextdouble(); int[] sc = new int[4]; int f = 0; while(linescanner.hasnextint()) { linescanner.usedelimiter(","); sc[f] = (linescanner.nextint()); f++; } currentjob.setjobid(jid); currentjob.setcustomerid(cid); currentjob.setregistration(rego); currentjob.setdate(date); currentjob.setday(day); currentjob.settotalfee(fee); currentjob.setservicecode(sc); jobarray[i] = currentjob; system.out.println(currentjob.getjobid()); system.out.println(currentjob.getcustomerid()); system.out.println(currentjob.getregistration()); system.out.println(currentjob.getdate()); system.out.println(currentjob.getday()); system.out.println(currentjob.gettotalfee()); system.out.println(arrays.tostring(currentjob.getservicecode())); system.out.println(arrays.tostring(jobarray)); } } }catch (exception e) { } } }

`` i'm getting @ moment

90301 14304 itguru 11/11/2014 tuesday 735.75 [1204, 1205, 0, 0] [job@1c31e2ad, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]

90301 downwards [1204, 1205, 0, 0] contents of line. can see it's storing first line of text file , nothing. need help prepare this.

completely forgot grab statement beingness empty yes it's showing issues

java.util.nosuchelementexception @ java.util.scanner.throwfor(scanner.java:907) @ java.util.scanner.next(scanner.java:1530) @ java.util.scanner.nextint(scanner.java:2160) @ java.util.scanner.nextint(scanner.java:2119) @ test3.job(test3.java:31) @ test3.main(test3.java:9)

the above i'm getting.

dailyjobs.txt

90301,14304,itguru,11/11/2014,tuesday,735.75,1204,1205 90302,14314,rok5tr,12/11/2014,wednesday,335.75,1205 90303,14318,hrtbrk,13/11/2014,thursday,125.5,1200 90304,14310,evoh8r,14/11/2014,friday,1207.95,1211 90305,14300,g4mer,11/11/2014,tuesday,500,1204,1202 90306,14312,coffee,11/11/2014,tuesday,100,1202 90307,14316,populr,11/11/2014,tuesday,150,1203 90308,14317,wrxsti,11/11/2014,tuesday,1307.95,1211,1202 90309,14321,fast,11/11/2014,tuesday,400,1204 90310,14308,prqul8,14/11/2014,friday,150,1203 90311,14315,ok2bl8,14/11/2014,friday,335.75,1205 90312,14320,oldguy,11/11/2014,tuesday,1207.95,1211 90313,14313,abc123,12/11/2014,wednesday,,1202,1203,1205,1210 90314,14306,wait,11/11/2014,tuesday,150,1203 90315,14302,fuzz,14/11/2014,friday,335.75,1205 90316,14313,go,12/11/2014,wednesday,,1204,1202 90317,14309,sing,13/11/2014,thursday,400,1204 90318,14307,manic,12/11/2014,wednesday,100,1202 90319,14305,urabus,14/11/2014,friday,1207.95,1211 90320,14303,stop,14/11/2014,friday,150,1203 90321,14310,bakoff,11/11/2014,tuesday,,1204,1205 90322,14322,winner,14/11/2014,friday,1207.95,1211 90323,14324,kitty,13/11/2014,thursday,400,1204 90324,14325,weddin,12/11/2014,wednesday,100,1202 90325,14326,fightr,11/11/2014,tuesday,100,1202 90326,14320,oldguy,14/11/2014,friday,175.9,1208 90327,14322,quick,12/11/2014,wednesday,,1203,1204,1209 90328,14322,l8r,13/11/2014,thursday,400,1204 90329,14299,truth,13/11/2014,thursday,80.25,1197 90330,14337,night,13/11/2014,thursday,150,1203 90331,14312,coffee,13/11/2014,thursday,350,1204

you mentioned exception nosuchelementexception occures here:

int jid = linescanner.nextint();

this means, scanner tries read int, not there. main problem current code structure:

int jid = linescanner.nextint(); int cid = linescanner.nextint(); string rego = linescanner.next(); string date = linescanner.next(); string day = linescanner.next(); double fee = linescanner.nextdouble(); // omitted code while(linescanner.hasnextint()) { linescanner.usedelimiter(","); sc[f] = (linescanner.nextint()); f++; }

you're reading stuff , assigning variables, you're reading until lastly integer (linescanner.hasnextint()). loop stop if there no more integer read available. after that, you're doing more stuff not necessary here.

this first iteration of for (int = 0; < jobarray.length; i++). comes next iteration. linescanner still same, hence there integer read due loop while(linescanner.hasnextint()), sec iteration reach line int jid = linescanner.nextint();. scanner tries read int, can't find read , throws nosuchelementexception.

to prepare that, should reset linescanner read new line. or delete for loop, because while(scanner.hasnextline()) take care of reading each available line , linescanner "filled" correctly. , please re-think current position of variable job[] jobarray = new job[30];. you'll lost info on each new line of file.

java arrays for-loop

No comments:

Post a Comment