Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

17.4.5 Luvun erottaminen

Usein samassa jonossa on sekaisin lukuja ja merkkijonoja. Jotta käsittely saataisiin symmetrisemmäksi eri tyyppien välillä, niin luokkaan Mjonot on kirjoitettu myös polymorfiset funktiot:

	StringBuffer jono = new StringBuffer("   Volvo   145  | 2000 e  | 3 kpl ")
	String s = "";
	double d = 0.0;
	int kpl = 0;
	s   = erota(jono,'|',s);      // "Volvo 145"
	d   = erota(jono,'|',d);      // 2000
	kpl = erota(jono,'|',kpl);    // 3

Idea on siinä, että jos myöhemmin huomataan vaikka että kpl pitäisi olla tyypiltään double eikä int, riittää vain muuttujan kpl tyypin vaihtaminen.

Jos halutaan käsitellä tilanteet, joissa joku kenttä onkin virheellistä muotoa, on edellisestä myös poikkeuksen heittävät muodot:

	try {
	  s   = erotaEx(jono,'|',s);    // "Volvo 145"
	  d   = erotaEx(jono,'|',d);    // 2000
	  kpl = erotaEx(jono,'|',kpl);    // 3
	} catch  ( NumberFormatException ex ) {
	  System.out.println(ex.getMessage());
	}


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys