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

Relevanta dokument
Regular expressions. "regexps" "grep" Jan Erik Moström,

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

Att skriva till och läsa från terminalfönstret

Tentamen , Introduktion till Java, dtaa98, dtea53

Input. Programmering. Andra källor

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

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output

SMD 134 Objektorienterad programmering

Föreläsnings 9 - Exceptions, I/O

Laboration 10 - NetBeans

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada

Laboration 10 - Eclipse

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.

Språkkonventioner och redigering av tal.

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

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

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

Tentamen , Grundläggande programmering i Java

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Lösningar för tenta 2 DAT043,

Objektorienterad programmering i Java

Föreläsning 14. Filhantering

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

Programmering för språkteknologer II, HT2011. Rum

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

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

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

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

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Att använda Java SE JDK 6

JAVA Mer om klasser och objektorientering

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på:

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Recitation 4. 2-D arrays. Exceptions

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

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

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77)

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

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

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

Detta dokument är ett exempel, cirka hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

JAVAUTVECKLING LEKTION 7

System.out.println("Jaså du har "+ antaldollar + " stycken.");

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Lösningsförslag tentamen FYTA11 Java

Tentamen. Lösningsförslag

Föreläsning 3: Booleans, if, switch

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

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

Tentamen OOP

Översikt. Skriva och läsa data. Kontrollflöde. Två sorters loopar. For-loop. For-loop

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

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

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

Tentamen. Grundläggande programmering i Java A 5p, DTAA

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

JUnit 4 - användning. Grunderna. org.junit. org.junit.test. Henrik Bergström DSV SU/KTH. Innehåller bland annat:

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

Upplägg. Introduktion. Examination. Mål. Konsekvenser. Java. Kursen heter konstruktion, ej design eller formgivning.

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.

Dagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram?

OOP Tenta

Objektorienterad Programmering DAT043. Föreläsning 2 15/1-18 Moa Johansson

PROGRAMMERING-Java Omtentamina

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

Föreläsning 8: Exempel och problemlösning

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Objektorienterad Programmering (TDDC77)

Generisk klass med typparameter Inre klass - ListIterator

//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Programmeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner

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

Objektorienterad Programkonstruktion

PROGRAMMERING-Java TENTAMINA

Software Technology. Josef Svenningsson

Den som bara har en hammare tror att alla problem är spikar

F4. programmeringsteknik och Matlab

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

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

Typkonvertering. Java versus C

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

Dugga i Grundläggande programmering STS, åk

OOMPA 2D1359 Föreläsning 3

Vad kännetecknar en god klass. Vad kännetecknar en god klass. F12 Nested & Inner Classes

Transkript:

Reguljära uttryck Ett sätt att söka och manipulera text Reguljära uttryck Konstruerar mönster som försöker hitta nåt i text Viktigt, användbart, många resurser http://regex.info/ http://etext.lib.virginia.edu/services/helpsheets/unix/regex.html http://www.regular-expressions.info/ http://regexlib.com/default.aspx http://regexlib.com/cheatsheet.aspx 459 460 Boka en resa för boken som finns i bokstugan norr om bokrike bok(en stugan rike) bock\1 Boka en resa för bocken som finns i bockstugan norr om bockrike 461 462 Nu 17 kommer en siffra78 och en till 78 men utan 7kstuga 89 \b(\d+)\b import java.util.regex.*; public class Demo01 private static final String PatternToLookFor = "\\b(\\d+)\\b"; private static final String TargetString = SIFFRA(\1) Nu SIFFRA(17) kommer en siffra78 och en till SIFFRA(78) men utan 7kstuga SIFFRA(89) 463 public static void main( String args[] ) Pattern p = Pattern.compile( PatternToLookFor ); Matcher m = p.matcher( TargetString ); System.out.println( m.replaceall( "SIFFRA($1)" ) ); Nu kommer en siffra78 och en till SIFFRA(78) men utan 7kstuga SIFFRA(89) 464

import java.util.regex.*; public class Demo02 private static final String PatternToLookFor = "\\b(\\d+)\\b"; private static final String TargetString = public static void main( String args[] ) Pattern p = Pattern.compile( PatternToLookFor ); Matcher m = p.matcher( TargetString ); while( m.find() ) System.out.println( m.group( ) + " start " + m.start( ) + " end " + m.end( ) ); that can be used by those to play can you say:, perhaps or between > java Demo02 78 start 34 end 36 89 start 54 end 56 465 466 import java.io.*; import java.util.regex.*; public class Demo03 private final static String EXAMPLE = "example.txt"; private final static String PATTERN = "reguljära uttrycket här"; private static String gettext( ) char inp[] = new char[1000]; try Reader input = new BufferedReader( new FileReader( EXAMPLE ) ); input.read( inp ); catch ( java.io.filenotfoundexception fnf ) fnf.printstacktrace(); catch ( java.io.ioexception io ) io.printstacktrace(); return new String(inp); public static void main( String[] argv ) Pattern p = Pattern.compile( PATTERN ); while( m.find() ) System.out.println( m.group( ) ); "w.*" to play, perhaps or between 467 468 "w[^ ]*" " w[^ ]*", ween 469, 470

" w\\w*" "\\bw\\w*\\b" 471 472 \A Början av en sträng \b Ordgräns \B Inte en ordgräns \d Siffra \D Inte en siffra \s whitespace \S Inte whitespace \t Tab \w ordtecken \W Inte ordtecken \z Slut på sträng \Z Slut på sträng eller före nyrad 473 * 0 eller flera gånger + 1 eller flera gånger? 0 eller 1 count Exact count gånger min, Minst min gånger min,max min x max *? 0 eller fler (minimalt) +? 1 eller fler (minimalt)?? 0 eller 1 (minimalt) min,? Minst min gånger (minimalt) min,max? min x max (minimalt) 474 Ta bort mellanslag i början på raden Ta bort mellanslag i början på raden public static void main( String[] argv ) Pattern p = Pattern.compile( PATTERN ); System.out.println( m.replaceall( "" ) ); "^\\s*" > java Demo04 that can be used by those to play can you say:, perhaps or between 475 public static void main( String[] argv ) Pattern p = Pattern.compile( PATTERN, Pattern.MULTILINE ); System.out.println( m.replaceall( "" ) ); "^\\s*" > java Demo05 that can be used by those to play can you say:, perhaps or between 476

Ta bort ny rad och bara ett mellanslag "\\n \\s+" Ta bort ny rad och bara ett mellanslag "\\n\\s* \\s+" > java Demo06 that can be used by those to play some regular expressions. Regular expressions, or as they sometimes are called, "regexps" are useful. What can you say:, perhaps or between 477 > java Demo06 that can be used by those to play some regular expressions. Regular expressions, or as they sometimes are called, "regexps" are useful. What can you say:, perhaps or between 478 Enklare variant... Stringklassen har en metod replaceall som också använder regexp public class Demo07 private static final String patterntolookfor = "\\b(\\d+)\\b"; private static final String targetstring = Div public static void main(string[] argv) System.out.println(targetString.replaceAll(patternToLookFor, "SIFFRA($1)")); > java Demo07 Nu kommer en siffra78 och en till SIFFRA(78) men utan 7kstuga SIFFRA(89) 479 480 Ant Program för att hantera kompilering och paketering av avancerade javaprogram. make för java Beskriver beroenden/vad som ska göras osv. i form av ett XML dokument informationen om vad som ska göras skrivs i normalfallet i en fil som heter build.xml körs genom kommandot: ant target där target är en av de targets som definierats i build.xml i den katalog där man körde kommandot Ant: Exempel <?xml version="1.0"?> <project name="hello" default="compile"> <target name="clean" description="remove intermediate files"> <delete dir="classes"/> <target name="clobber" depends="clean" description="remove all artifact files"> <delete file="hello.jar"/> <target name="compile" description="compile the Java source code to class files"> <mkdir dir="classes"/> <javac srcdir="." destdir="classes"/> <target name="jar" depends="compile" description="create a Jar file for the application"> <jar destfile="hello.jar"> <fileset dir="classes" includes="**/*.class"/> <manifest> <attribute name="main-class" value="helloprogram"/> </manifest> </jar> </project> 481 482

Properties System properties kan kommas åt via klassen System: public static String getproperty(string key) public static Properties getproperties() Nyckel-värde par med info Ytterligare nyckel-värdepar kan ställas in på kommandoraden då programmet startas -D flaggan används ex: java -Ddebug.messages=true Kan ersätta direkt användning av kommandoradsargumenten och ge ett smidigare sätt att specificera värden vid programstart Ett program kan även använda Properties-klassen för egna inställningar 483 Göra ett program tillgängligt på flera språk Localization Blir svårt om vi har konstanta strängar i vårat program Om vi lagrar våra strängar i en properties fil så kan vi sedan ha olika sådana för olika språk och länder Eclipse har stöd för att göra detta Klassen ResourceBundle hanterar att man får rätt version beroende på vilket språk och land man har ställt in som standard för sin jvm (går också att specificera då man hämtar den) Jobbar med nyckel/värde par 484