Objektorienterad Programkonstruktion

Relevanta dokument
Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Föreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

I ett program hantera man ofta samlingar av objekt av samma typ.

Tentamen i Grundläggande Programvaruutveckling, TDA548

Föreläsning 15 (16) Historik (java.awt) Historik (javax.swing) Introduktion till Swing

Objekt som argument. Föreläsning 7-8 Innehåll. Hur komma åt den andra kvadratens attribut? Anropa metod på objektet självt

Föreläsning 7-8 Innehåll

Klassen String Mer om fält Något om inläsning

TENTAMEN OOP

Tentamen, EDAA20/EDA501 Programmering

OOP Objekt-orienterad programmering

Tentamen, EDAA10 Programmering i Java

PROGRAMMERING-Java TENTAMINA

Datastrukturer. Föreläsning Innehåll. Program med vektor Exempel. Deklarera vektorer

Föreläsning 10. ADT:er och datastrukturer

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

Objektorienterad programmering

Tentamen i Grundläggande Programvaruutveckling, TDA548

PROGRAMMERING-JAVA TENTAMINA

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Föreläsning 8. Klassen String Mer om fält Klassen ArrayList

Lösningsförslag, tentamen FYTA11 Javaprogrammering

Föreläsning 7. Fält Klassen String

STRÄNGAR DATATYPEN. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. strängar

Fält och klassen String

Föreläsning 14. Filhantering

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

PROGRAMMERINGSTEKNIK för F1 och TM1 (TIN212)

Lösningar för tenta 3 DAT043,

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

Föreläsning 6. Fält. Fält Klassen String. Fält

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU

Institutionen för TENTAMEN CTH VT-15 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

Objektorienterad Programkonstruktion. Föreläsning 7 24 nov 2015

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Tentamen , Introduktion till Java, dtaa98, dtea53

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Reguljära uttryck. Reguljära uttryck. Nu kommer en siffra78 och en till SIFFRA(78) men utan 7kstuga SIFFRA(89)

Tentamen OOP

Input. Programmering. Andra källor

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

OOP Objekt-orienterad programmering

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Rita Egna Bilder, Timer

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-15, TDA540. Dag: , Tid:

Institutionen för TENTAMEN CTH HT-14 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

Anteckningar 1: Grundläggande saker

PROGRAMMERING-Java Omtentamina

lgammal2.txt // Lösningar till gammal tentamen // Uppgift 1 a

Tentamen, EDAA10 Programmering i Java

Objektorienterad Programkonstruktion. Föreläsning jan 2016

Objektorienterad Programkonstruktion. Föreläsning 10 7 dec 2015

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

Malmö högskola 2008/2009 CTS

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Föreläsning 3: Händelsestyrda program och användargränssnitt

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Objektorienterad Programmering (TDDC77)

Tecken och strängar i Java

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-15, TDA540. Dag: , Tid:

Parallellism, återblick

Föreläsning 2. Länkad lista och iterator

OOP Objekt-orienterad programmering

Tentamen, EDAA20/EDA501 Programmering

Mer om grafiska komponenter. Händelsestyrda program

Föreläsning 7. for-satsen Fält

DEL 1 För att få godkänt på tentan (betyg 3) måste du lösa minst fem av sju uppgifter i denna del.

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Lösningsförslag till tentamen

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se

TENTAMEN OOP

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

2I1073 Lektion 2. Lektion 2a. Lektion 2a. Servlets, säkerhet, och filhantering. import java.io.*; import javax.servlet.*; import javax.servlet.http.

Instuderingsfrågor, del D

Laboration 15 Grafiskt användargränssnitt

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540) Ansvarig: Jan Skansholm, tel eller

Malmö högskola 2007/2008 Teknik och samhälle

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

Saker du ska kunna Föreläsning 13 & 14

Föreläsning 3-4 Innehåll

Malmö högskola 2007/2008 Teknik och samhälle

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Transkript:

Objektorienterad Programkonstruktion Övning 3 Stränghantering Filer Christian Smith ccs@kth.se 1

Strängar Strängar definieras i klassen String Strängar kan instansieras med bokstavliga (eng: literal) strängar, dvs uttryck av typen "detta är en sträng" String s1 = new String("Detta fungerar!"); String s2 = "Detta fungerar också!"; System.out.println("Detta går också bra!"); System.out.println(s2.toUpperCase()); System.out.println(new String("Detta går också!").touppercase()); System.out.println("Detta går faktiskt också!".touppercase()); 3

Konstruktorer i String String(String str) skapar en ny sträng med innehållet i str String(char[] ca) skapar en ny sträng utifrån ca String(byte[] bytes) String(byte[] bytes, String charsetname) String(byte[] bytes, Charset charset) skapar en ny sträng av bytes, enligt teckenkodningen charset, default är systemets teckenkodning String(StringBuilder builder) skapar en ny sträng av en StringBuilder 4

Exempel på metoder i String String substring(int beginindex, int endindex) Returnerar den del av strängen som finns mellan indexen (inklusivt) char charat(int index) Returnerar ett tecken från indexet public int compareto(string str) public int comparetoignorecase(string str) Gör jämförelse baserad på tecknens värde (alfabetisk) public boolean contains(charsequence s) returnerar true om s ingår minst en gång i strängen int indexof(string str, int fromindex) returnerar index (eller -1) till första förekomst av str, efter fromindex 5

Exempel på metoder i String public char[] tochararray() Returnerar en char-array gjord av strängens tecken. public String tostring() Gör vad man tror public string tolower() public string toupper() Byter mellan gemener och versaler static String valueof(boolean b) static String valueof(int i) static String valueof(double d) static String valueof(object o) returnerar strängen som skulle komma från tostring() 6

Övningar med String Skriv en metod som tar en String och sorterar om alla tecken i den alfabetiskt, t.ex "En exempeltext" -> " Eeeeelmnpttxx" Skriv en metod som räknar hur många gånger ett visst ord förekommer i en sträng. Skriv en metod som plockar bort alla förekomster av ett visst ord ur en sträng 7

Fler String-metoder String replace(string str1, String str2) ersätter alla förekomster av str1 med str2 String[] split(string regex) delar strängen vid varje förekomst av regex, och returnerar en String-array StringAB = StringA + StringB; Gör så att StringAB blir en sammanslagning av StringA och StringB StringBuilder: StringBuilder(String initstring) Skapar ett objekt av typen StringBuilder, som mer effektivt kan sätta ihop nya strängar, se StringBuilderDemo public StringBuilder append(string int boolean etc s) lägger till s sist i StringBuilderns sträng public StringBuilder insert(int pos, String etc s) stoppar in s vid position pos i StringBuilderns sträng public StringBuilder delete(int startpos, int endpos) plockar bort innehåll från startpos till endpos i StringBuildern 8

Scanner Bra när man vill ta sig igenom en text från början till slut, och göra något med alla delar i tur och ordning. Kan ta en String som indata, men också strömmar, som t.ex filer eller text som skrivs på en kommandorad. ex för att läsa från fil: try{ Scanner sc = new Scanner(new File("infil.text")); } catch(filenotfoundexception e){ System.out.println("File not found!"); } 9

Scanner boolean hasnext() hasnextint() hasnextline() mm returnerar true om det finns något kvar att scanna String next(string pattern) returnerar nästa String som passar mönstret, och flyttar Scannern till första positionen efter denna String nextline() returnerar allt fram till nästa radbrytning, och flyttar fram Scannerns position till nästa rad usedelimiter(string pattern) Definierar vad som ska anses vara ett mellanrum mellan två tokens 10

Regexp (Reguljära uttryck) X - tecknet X X* - en sekvens av 0 eller fler X XX(X*) - en sekvens av 2 eller fler X [ABC] - ett A, ett B eller ett C \\s - ett mellanrum (tab, mellanslag, mm) a b - antingen ett a eller ett b a* b* - en sekvens med 0 eller fler a:n, alternativt 0 eller fler b:n [0-9A-F]* - en sekvens med 0 eller fler siffror eller någon bokstav A till F (a[ab]*) \" - antingen en sekvens som börjar med ett a, fortsätter med 0 eller fler a:n eller b:n, eller ett ensamt citattecken 11

Scannerexempel String s = "<detta>är texten vi vill<scanna>"; Scanner sc = new Scanner(s).useDelimiter("[<>\\s*]"); while(sc.hasnext()){ System.out.println(sc.next()); } sc.close(); 12

Att skriva till fil, snabbkurs Se FileWriterDemo.java 13

HTML Minimalt giltigt HTML-dokument <!DOCTYPE html> <html> <head> <title>hello World</title> </head> <body> <p>hello world!</p> </body> </html> 3

HTML i Java Swing Vissa av de Swing-komponenter som kan visa text, kan också visa HTML, som t.ex JEditorPane, JButton eller JLabel Detta gör att man kan formatera texten i dessa ganska fritt, och det är lätt att inkludera bilder, tabeller, mm Om man vill använda HTML i texten i en Swingkomponent måste texten i String-objektet som man vill skriva ut inneslutas av tagg-paret <html> </html> l JEditorPane behöver man inte <html>-taggarna om man angett att dokumentmodellen ska vara "text/html" 4

HTML i Swing - ett Demo import javax.swing.*; public class HTMLDemo{ public static void main(string[] args){ JFrame myframe = new JFrame(); JLabel mylabel = new JLabel("<html>" + "<font color=\"red\"> RED </font>" + "<font color=\"blue\"> BLUE </font>" + "</html>"); myframe.add(mylabel); myframe.pack(); myframe.setvisible(true); } } 5

Olika Swingklasser för text JLabel - för text användaren inte kan ändra JTextField - för en rad som användaren kan ändra JPasswordField - som ovan, men texten är dold JFormattedTextField - som JTextField, men med automatisk formatering av t.ex datum, valuta, mm JTextArea - för inmatning med flera rader text JEditorPane - för text med avancerad formattering, t.ex HTML 6

Textinmatning JTextField och JPasswordField kan skicka ActionEvent när man trycker på retur. ActionEvent:ets getactioncommand() returnerar texten som har matats in I en JTextArea vill man (oftast) inte skicka iväg texten så fort man tryckt på retur. Då kan det vara lämpligt att ha en separat knapp för att skicka. Lämpligtvis hämtar man då texten med hjälp av metoden gettext() I en JTextArea kan man behöva ställa in beteendet som man vill ha det innan det blir fint. t.ex setpreferredsize(dimension d) setfont(font f) setlinewrap(boolean b) setwrapstyleword(true) 7

JScrollPane Innehåller ett annat Swing-objekt, och scrollbars för att titta på olika delar bild från Oracles tutorial 8

Några demoprogram 9