Help me

Moderátor: FeroG

<<

Skorpikon

Príspevky: 12

Registrovaný: Ned Feb 24, 2008 8:32 pm

Poslať Pia Máj 02, 2008 1:11 am

Help me

Ciao
Natrafil som na jeden problem pri rieseni uloh z palmy. Tam sa často vyskytuje úloha ktorá si ziada vstup ukonceny bodkou. No a tu je moj problém. Nacítavam vstup cez scanner
Scanner s = new Scanner (System.in);
a za nič na svete neviem prist na nejaku podmienku do while cyklu ktora by ho ukoncila ak nasleduje ta bodka.
Poradte dačo.
>>Skorpikon<<
<<

alef0

Site Admin

Príspevky: 621

Registrovaný: Štv Nov 16, 2006 8:57 am

Poslať Pia Máj 02, 2008 8:57 am

Ak sa nacitava po riadkoch, tak

  Kód:
while(scanner.hasNextLine()){
...
}


Najlepsie to vidiet v clanku o Java IO.
Lorem ipsum dolor sit amet.
<<

johny

Príspevky: 132

Registrovaný: Pia Feb 22, 2008 6:37 pm

Bydlisko: Košice

Poslať Pia Máj 02, 2008 3:49 pm

  Kód:
String vstup = s.nextLine();
while (!vstup.equals(".")) {
    // spracuj riadok zo vstupu
    vstup = s.nextLine();
}


alebo skrátene

  Kód:
String vstup;
while (!(vstup = s.nextLine()).equals(".")) {
    // spracuj riadok zo vstupu
}
E-mail/Jabber: jan[zavináč]jergus.eu
<<

Skorpikon

Príspevky: 12

Registrovaný: Ned Feb 24, 2008 8:32 pm

Poslať Sob Máj 03, 2008 12:25 am

Skusil som aj jedno aj druhe ale stale mi to nechce prejst. Pri debagovani ak narazi na riadok s bodkou tak jak keby uz nemal dalsie kroky a neda sa mi pokracovat v debagovani. No a ked to spustim normalne tak sa mi to nejak nechce ukonci abo co.
Hodil som na net zdrojak ftp://skorpikon.tym.cz/source.java
Kto vie kde je tam chyba? (len k tomu s bodkou lebo chyb tam asi bude viac :-)) )
>>Skorpikon<<
<<

Cavour

Príspevky: 15

Registrovaný: Pon Feb 25, 2008 1:38 pm

Poslať Sob Máj 03, 2008 12:33 am

source

neviem ako inym, ale mne ten link nejde ;)
<<

DeaDMan

Príspevky: 3

Registrovaný: Štv Feb 28, 2008 2:36 pm

Poslať Sob Máj 03, 2008 12:20 pm

ani mne nejde
<<

Dante

Príspevky: 14

Registrovaný: Štv Feb 28, 2008 3:29 pm

Poslať Sob Máj 03, 2008 12:40 pm

mne zapita heslo a prihlasovacie meno pri pokuse stiahnut forefox 3 beta 5 .....
<<

johny

Príspevky: 132

Registrovaný: Pia Feb 22, 2008 6:37 pm

Bydlisko: Košice

Poslať Sob Máj 03, 2008 10:47 pm

Dá sa to stiahnuť, keď zmeníte ftp:// na http://.

Problém 1: Keď načítaš mená hráčov druhého tímu, "kurzor" je na konci riadku s posledným menom. Ďalšie volanie s.nextLine() teda načíta tento koniec riadku, potom je tam jeden prázdny riadok, ktorý načítaš ďalším s.nextLine() a až potom nasledujú riadky s gólmi. Chýba ti tam jeden s.nextLine(), takže sa snažíš rozsekať prázdny riadok na čas a meno, pri čom vznikne tá výnimka.

  Kód:
...
      String pomocny;
      int i = 0;
      pomocny = s.nextLine();  // nacita koniec riadku s poslednym menom
      pomocny = s.nextLine();  // nacita prazdny riadok
// dalsi s.nextLine() uz bude nacitavat prvy cas a meno

// *****************************************************************
//      Tu sa to stale pokasle
// *****************************************************************
      while (!(pomocny=s.nextLine()).equals(".")) {
...


Celá táto časť by sa dala elegantnejšie napísať, ak použiješ s.next() namiesto s.nextLine():

  Kód:
...
      String pomocny;
      int i = 0;

// *****************************************************************
//      Tu sa to stale pokasle
// *****************************************************************
      while (!(pomocny=s.next()).equals(".")) { // nacita cas, pripadne bodku, ak ide o posledny riadok - vtedy sa vnutro cyklu nevykona
         stav[i] = pomocny;  // ulozi nacitany cas
         meno[i] = s.next();  // nacita meno
         ++i;
      }
...


Problém 2: hraci1.length je vždy 100, neviem prečo ho používaš v cykle - veď počet načítaných riadkov máš uložený v premennej i.
E-mail/Jabber: jan[zavináč]jergus.eu

Späť na PAZ1b

Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 1 hosť

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software.
Slovenský preklad.