Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

Tabeller av objekter Klassen ArrayList
C++ for Java-programmerere
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Datafiler og serialisering Tekstfiler Scanner-klassen Binær overføring av data Direkte tilgang til filinnholdet Serialisering LC191D Videregående programmering.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
Kontrollstrukturer (Kapittel 3)
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
1 Java 6 Mer om metoder Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Samarbeid mellom objekter
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Java 4 Mer om forgreninger While-løkker Ole Christian Lingjærde
Objekt, Instanser og referanser + litt til. Objekter  Instanser  En instans er et objekt av en bestemt klasse  Instanser blir laget ved å kalle klassens.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Eiendomregister mars 2002 Arne Maus. import java.util.*; import inf101.*; /* Klasse med main() som starter hele programmet */ class EiendomsregisterMain.
En gang til!? .
Fag LO189D - Objektorientert programmering Objektorientert programmering© Else Lervik, TISIP - HiST/IDB vår-99Leksjon 11 Applet’s Hva karakteriserer applet’sside.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Objektorientert programmering
Repetisjon av JSP Variabler, tabeller, if-setninger, for/while-løkker
Java 3 Mer om uttrykk Terminal I/O Forgreninger
Java 11 Programmering med og uten objekter: hva er forskjellen?
1 Kap 06 Ordnede / Sorterte lister Oppgave nr 06_02 Polynomer Klassehierarki Javadokumentasjon.
Å lese tall fra en fil, klassen Scanner 1.Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2.Kan skanne teksten etter data av ulike.
Programmering i Java tilpasset undervisning våren 2009 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet.
Java 5 Litt mer om løkker Arrayer Metoder Ole Christian Lingjærde
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon september 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
INF1000 (Uke 12) Sortering og eksamensoppgaver Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen.
Byggeklosser i java  Klassedefinisjon  Variabel deklarasjon  Metodedeklarasjoner  En ordentlig klasse  Spesielle/kryptiske skrivemåter  løkker og.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
INF1000 (Uke 4) Mer om forgreninger, While-løkker
Variabler, datatyper og uttrykk
Utskrift av presentasjonen:

Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6 Løkke som kontrollstruktur Hva er en løkke?side 2 while-setningen med eksempelside 3 Å teste løkkerside 5 Et eksempel på grafikkside 6-7 for-setningenside 8-9 Nøstede kontrollstrukturerside 10 do-while-setningenside 11 Valg av løkkesetning og testing av løkkerside 12 Kontroll av inndataside 13 Å bruke pakker som ikke tilhører Java API’etside Å formatere data i kolonner med printf()side Å dele opp en tekst i ord, klassen StringTokenizerside 20

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 2 Hva er en løkke? •En algoritme er et begrenset og ordnet sett med veldefinerte regler for løsning av et problem. •Tre kategorier rekkefølge eller kontrollstrukturer: –sekvens (kapitlene 2-4) –valg (kapittel 5, Java-setninger: if og switch) –løkke (dette kapitlet, Java-setninger: while, for, do) •En løkke gjør det mulig å gjenta en enkelt setning eller en blokk én eller flere ganger. •En tellerkontrollert løkke er en løkke der antall gjennomløp er kjent på forhånd.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 3 while-setningen med eksempel class SkrivMangeLinjer { public static void main(String[] args) { int teller = 0; while (teller < 5) { System.out.println("Dette er en linje"); teller++; } Utskrift: Dette er en linje while-setningen: while (logisk uttrykk) setning/blokk Gjør oppgaven side 208. teller = 0 [teller < 5] [teller >= 5)] skriv ut tekst teller++ initiering av løkken løkkebetingelsen løkkekroppen oppdatering av løkkebetingelsen

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 4 class SoekEtterTall { public static void main(String[] args) { final int grense1 = 0; final int grense2 = 70; final int grense3 = 80; final int grense4 = 100; Random tallGen = new Random(); int antOKTall = 0; int tall = grense1 + tallGen.nextInt(grense4 - grense1 + 1); while (tall grense3) { antOKTall++; System.out.println(tall); tall = grense1 + tallGen.nextInt(grense4 - grense1 + 1); } System.out.println("Vi måtte trekke " + antOKTall + " tall til vi fant et ugyldig: " + tall); } En løkke med en generell betingelse trekk tall [tall < 70 || tall > 80] [tall >= 70 && tall <= 80] antOKTall++ trekk tall initiering av løkken løkkebetingelsen løkkekroppen oppdatering av løkkebetingelsen antOKTall = 0 skriv ut resultater

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 5 Å teste løkker •Formuler testdata som fanger opp følgende tilfeller: –Løkken gjennomløpes 0 ganger. –Løkken gjennomløpes eksakt 1 gang. –Løkken gjennomløpes noen ganger. –Er det mulig å konstruere testdata som gjør at løkkebetingelsen aldri blir usann? Hvis ja, vil dette kunne bli en evig løkke, og det var vel ikke meningen? Gjør oppgavene 1-3 side

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 6 Et eksempel på grafikk •Vi skal lage et vindu med 11 tilfeldig plassert flekker. •Følgende konstanter er deklarert: private static final int diameter = 20; private static final int sentr = diameter / 2; private static final int antStreker = 10; •Størrelsen på tegneflaten finner vi inne i paintComponent(): maksXverdi = getWidth() - 1; maksYverdi = getHeight() - 1; •En x-verdi trekkes slik: int x = tallGen.nextInt(maksXverdi - diameter); •En sirkel tegnes slik: vindu.fillOval(x, y, diameter, diameter); •En rett linje mellom to punkter tegnes slik: vindu.drawLine(x1, y1, x2, y2); •Oppgaver –Finn antall løkkegjennomløp. –Sett opp løkkebetingelsen. –Konstruer resten av løkken.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 7 Løsning import java.awt.*; import javax.swing.*; import java.util.Random; class Vindu extends JFrame { public Vindu(String tittel) { setTitle(tittel); setSize(400, 300); // bredde, høyde setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE); Tegning tegningen = new Tegning(); add(tegningen); } class Tegning extends JPanel { private static final int diameter = 20; private static final int sentr = diameter / 2; private static final int antStreker = 10; private Random tallGen = new Random(); private int maksXverdi; private int maksYverdi; Gjør oppgavene side 214. public void paintComponent(Graphics tegneflate) { super.paintComponent(tegneflate); maksXverdi = getWidth() - 1; maksYverdi = getHeight() - 1; int x = tallGen.nextInt(maksXverdi - diameter); int y = tallGen.nextInt(maksYverdi - diameter); tegneflate.fillOval(x, y, diameter, diameter); int teller = 0; while (teller < antStreker) { int forrigeX = x; int forrigeY = y; x = tallGen.nextInt(maksXverdi - diameter); y = tallGen.nextInt(maksYverdi - diameter); tegneflate.drawLine(forrigeX + sentr, forrigeY + sentr, x + sentr, y + sentr); tegneflate.fillOval(x, y, diameter, diameter); teller++; } class TegnFlekkerMedLinjer { public static void main(String[] args) { Vindu etVindu = new Vindu("Flekker med linjer"); etVindu.setVisible(true); }

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 8 class SkrivMangeLinjer { public static void main(String[] args) { int teller = 0; while (teller < 5) { System.out.println("Dette er en linje"); teller++; } class SkrivMangeLinjer { public static void main(String[] args) { for (int teller = 0; teller < 5; teller++) { System.out.println("Dette er en linje"); } for-setningen •while-setningen kan brukes til alle typer løkker. •Vanlig å bruke for-setningen dersom løkken er tellerkontrollert. •Oppgave: Identifiser initiering, betingelse og oppdatering av løkkebetingelsen i de to løkkekonstruksjonene over. •Syntaks: for (initiering; betingelse; oppdatering av betingelse) setning/blokk •Definisjonsområdet til variabler deklarert i for-setningen er for-setningen selv.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 9 for-setningen, eksempler •Tegner 30 sirkler etter hverandre int x = 0; int y = 50; for (int teller = 0; teller < 30; teller++) { vindu.drawOval(x, y, 20, 20); x += 20; } •Andre for-setninger for (int tall = 1000; tall > 500; tall--) { // teller ned fra 1000 til og med 501 for (int xPos = 100; xPos < 800; xPos += 5) { // øker med 5 for hvert // gjennomløp for (int medlNr = 101; medlNr <= 900; medlNr++) { // medlNr fra og med // 101 til og med 900

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 10 Nøstede kontrollstrukturer •if-setninger inne i hverandre, løkker inne i hverandre, if- setninger inne i løkker og omvendt, osv... •Hva skrives ut når følgende program kjører? class SumAvTall { public static void main(String[] args) { for (int linjeteller = 0; linjeteller < 10; linjeteller++) { int sum = 0; for (int tall = 1; tall <= linjeteller; tall++) { sum += tall; System.out.print(tall + " "); } System.out.println("Summen blir: " + sum); } Gjør oppgave 1 side 217.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 11 do-while-setningen •do-while-setningen skiller seg fra for- og while-setningene ved at løkkekroppen alltid gjennomløpes minst en gang •Praktisk ved innlesing der data skal kontrolleres •Eksempel: int antStudenter; do { String lestTekst = showInputDialog("Oppgi antall studenter (maks. 30): "); antStudenter = Integer.parseInt(lestTekst); } while (antStudenter 30); •Syntaks: do setning/blokk while logisk uttrykk

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 12 Valg av løkkesetning •Bruk for-setningen dersom antall gjennomløp av løkken er kjent på forhånd, eller der en heltallsvariabel øker eller avtar med en fast verdi for hvert gjennomløp. •Bruk while-setningen dersom antall løkkegjennomløp styres av en generell betingelse. •Bruk do-while-setningen dersom antall løkkegjennomløp styres av en generell betingelse, og løkken alltid skal gjennomløpes minst en gang.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 13 Kontroll av inndata •Lager en klasse (DataLeser) med klassemetoder for innlesing av data: –public static String lesTekst(String ledetekst) –public static int lesHeltall(String ledetekst) –public static double lesDesimaltall(String ledetekst) •Bruk: String tekst = DataLeser.lesTekst("Skriv en tekst: "); double desimaltall = DataLeser.lesDesimaltall("Skriv et desimaltall: "); int heltall = DataLeser.lesHeltall("Skriv et heltall: "); •Metoden lesTekst(): public static String lesTekst(String ledetekst) { String tekst = showInputDialog(ledetekst); while (tekst == null || tekst.trim().equals("")) { showMessageDialog(null, "Du må oppgi data."); tekst = showInputDialog(ledetekst); } return tekst.trim(); } •Metodene for innlesning av tall bruker parseInt() og parseDouble(). Unntakshåndtering dersom teksten ikke kan tolkes som tall. Vis programliste 6.5 side 222ff. Gjør oppgavene side 224.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 14 Å bruke pakker som ikke tilhører Java API’et com xssoft grafikkdatabaser Sirkel.class Polygon.class Person.class Eiendom.class c: java C LASSPATH=.;C:\java import com.xssoft.grafikk.Sirkel; globalt entydig klassenavn

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 15 mittBibliotek •mittBibliotek er en pakke som følger med boka •Pakken inneholder bl.a. klassen DataLeser •De første linjene i klassen ser nå slik ut: package mittBibliotek; import javax.swing.JOptionPane; public class DataLeser { mittBibliotek DataLeser.class c: java C LASSPATH=.;C:\java import mittBibliotek. DataLeser;

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 16 Å formatere data i kolonner med printf() •Utskrift i kolonner krever en ikke-proporsjonal skrifttype String tekst = "e"; for (int i = 0; i < 5; i++) { int tall1 = i * 10; double tall2 = tall ; tekst += "e"; // en 'e' mer for hvert gjennomløp System.out.printf("%2d %3d %7.2f %13s\n", i, tall1, tall2, tekst); } •Utskriften ser slik ut: 0 0 0,50 ee ,50 eee ,50 eeee ,50 eeeee ,50 eeeeee

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 17 printf() i detalj System.out.printf("%2d %3d %7.2f %13s\n", i, tall1, tall2, tekst); 77070,50eeeeeeeee

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 18 printf(), forts. •Lokalisering i henhold til systeminnstillinger (ev. Locale-objekt) •Antall argumenter til printf() er variabelt, en variabel i argumentlisten for hvert format i første argument •Formatet er bygd opp slik: %[argumentindeks$][flagg][bredde][.nøyaktighet]type •Flagg: - venstrejuster ^ bare store bokstaver + alltid fortegn 0 fyll ut med nuller foran tallet •Eksempel: System.out.printf("Flaggtest: %-10s %+5d %05d\n", "abcdef", -34, 432); System.out.printf("Flaggtest: %-10s %+5d %05d\n", "abcdefgh", 3, 32); •gir utskriften Flaggtest: abcdef Flaggtest: abcdefgh

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 19 printf(), forts. •Formatkoder for desimaltall Verdi Format 10.2f Format 10.2g Format 10.2e 0, ,00*) 5.66e e , , , e , , e e+09 •*) Her er det foreløpig en feil i kompilatoren. Utskriften blir 0,56. •Formatering av tidspunkter med printf() Date nå = new Date(); System.out.printf("Akkurat nå er klokka %1$tR, datoen er %1$tF\n", nå); System.out.printf("Akkurat nå er klokka %1$tH:%1$tM, " + "datoen er %1$tY-%1$tm-%1$td\n", nå); •gir utskriften Akkurat nå er klokka 13:29, datoen er Gjør oppgave 1 side 230.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 6, side 20 Å dele opp en tekst i ord, klassen StringTokenizer /*Programmet analyserer en tekst ved å finne antall ord og gjennomsnittlig ordlengde. Teksten og skilletegnene leses inn fra brukeren. */ import java.util.StringTokenizer; import static javax.swing.JOptionPane.*; class Tekstanalyse { public static void main(String[] args) { String tekst = showInputDialog("Teksten: "); String skilletegn = showInputDialog("Skilletegn: "); StringTokenizer analyse = new StringTokenizer(tekst, skilletegn); int antOrd = analyse.countTokens(); int antBokst = 0; while (analyse.hasMoreTokens()) { String ord = analyse.nextToken(); antBokst += ord.length(); System.out.println(ord); } if (antOrd > 0) { double gjsnitt = (double) antBokst / (double) antOrd; showMessageDialog(null, "Antall ord er " + antOrd + ".\nGjennomsnittling ordlengde er " + gjsnitt); } else { showMessageDialog(null, "Ingen ord skrevet inn."); } /* Eksempel på kjøring: Inndata: Tekst: Anne-Berit Hansen, Storgt. 34,, 2356 Heia. Skilletegn i tillegg til blank:,.- Utskrift i konsollvinduet: Anne Berit Hansen Storgt Heia Utskrift i meldingsboksen: Gjennomsnittling ordlengde er */