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



Relevanta dokument
Användarhandledning Version 1.2

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

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv

Extramaterial till Matematik Y

Objektorienterad Programmering (TDDC77)

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

Programmering för webben

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

Introduktion till användning av linux-servern sledge och några övningsuppgifter

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

Strängar. Elektronikcentrum i Svängsta AB

Objektorienterad Programkonstruktion

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Objektorienterad Programmering (TDDC77)

kl Tentaupplägg

Chapter 3: Using Classes and Objects

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

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada

Innehåll. JavaScript - Grundkurs. Vad är JavaScript? Vad är JavaScript? Vad behövs? Lite historia

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Labb 1 - Textbearbetning med reguljära uttryck. Formella språk. Definitioner. Chomskyhierarkin. Formella språk. Formella språk

Emacs. Eric Elfving Institutionen för Datavetenskap (IDA)

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Laboration 6 Formulär och stränghantering övningar/uppgifter

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

TDP002 - Imperativ programmering

Introduktion till PHP

Programmering. Den första datorn hette ENIAC.

kl Tentaupplägg

Om include-filer i PHP

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet

Ersätta text, specialtecken och formatering

Emacs. Eric Elfving Institutionen för datavetenskap (IDA) 22 augusti 2016

KPP053, HT2015 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Övningsuppgifter till föreläsning 2 Variabler och uttryck

TDIU01 - Programmering i C++, grundkurs

Mathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x

Planering Programmering grundkurs HI1024 HT 2014

Kort om World Wide Web (webben)

Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut

Objektorienterad programmering i Java I

C++ Lektion Tecken och teckenfält

Funktioner. Linda Mannila

Uttryck, satser och strömhantering

729G04 Programmering och diskret matematik. Föreläsning 7

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Övningsuppgifter kapitel 8

Övning från förra gången: readword

Dokumentmallar i praktiken, Nyps

Språket Python - Del 2 Grundkurs i programmering med Python

C++ - En introduktion

4.4 Swing ett interaktivt grafiskt gränssnitt

TENTAMEN OOP

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

Programmering för språkteknologer II. OH-serie: Ändliga automater. reguljära uttryck i Java. Deterministiska ändliga automater

Programmeringsteknik med C och Matlab

[] Arrayer = Indexerad variabel

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

DD1314 Programmeringsteknik

Inledande programmering med C# (1DV402) 85/2=42. OBS! Heltal 1 (13)

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Uppgift 1 (grundläggande konstruktioner)

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

Innehåll. PHP Grundkurs. Introduktion till PHP. Kurslitteratur. Webbserver. Lite historik. PHP Grundkurs 1

Föreläsningsmaterial (Syntax och variabler)

Visual Basic, en snabbgenomgång

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

SurveyXact version 6.10

Labora&on 7 Syfte med laborationen:

Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer

TDP Regler

Introduk+on +ll programmering i JavaScript

TDIU01 - Programmering i C++, grundkurs

Programmering för språkteknologer I, VT2012. Rum

HI1024 Programmering, grundkurs TEN

Föreläsning 13 Testning och strängar

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

(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

DUGGA Tentaupplägg

Skapa etiketter från adresslistor

JavaScript del 5 Funktioner

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

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

Föreläsning 11. Strängar

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

16 Programmering TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5

729G09 Språkvetenskaplig databehandling

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Exempel: Exempel: Exempel: Exempel: $djur=array("ko","katt","älg"); foreach ($djur as $d) { echo $d. " "; } Resultat. ko katt älg

Transkript:

STRÄNGAR En av de mest avancerade av de normala datatyperna är. Här skall vi grundläggande gå igenom hur den datatypen fungerar och vidare flertalet funktioner som hör till datatypen. Låt oss kasta oss in i dataflödet. Mycket viktigt att notera är att det finns flera typer av apostrofer speciellt om man kopierar information från Word eller annat ordbehandlingsprogram. Därför är det inte att rekommendera att använda Word som redigeringsprogram till PHP-kod. Inte heller att man kopierar kod som är skriven i ett Worddokument. De tecken som man skall använda är SHIFT->2 för dubbla citattecken och den apostrof som är till höger om Ä på tangentbordet för enkla citattecken. DATATYPEN PHP är ett otypat språk, som sades tidigare. Så om du skall skapa en variabel med en sträng i så räcker det med att tilldela en variabel strängvärdet. Strängen omsluts av citattecken, antingen enkla eller dubbla. Behöver man ha ett citattecken i strängen får man använda backslash \ för att lägga in det. Samma sak för backslash själv. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. 39

Faktaruta: Escapetecken Ett tredje sätt att hantera är att använda heredoc syntax. Den ser ut så här. Denna syntax kan vara mycket brukbar, men den är väldigt kinkig på vissa detaljer. Det som står efter får enbart vara identifieraren (i detta fall ) och när man avslutar strängen får det enbart stå identifieraren och ett semikolon på den raden. I denna syntax kan man precis som med dubbla citattecknen använda escape-tecken och baka in variabler. WHITESPACE Låt oss gå vidare i vår stränghantering. Vissa saker tar vi för givna, däribland att när man trycker på ENTER-tangenten skall det bli en radbrytning. Men i HTML räknas ENTER som ett så kallat whitespace. Andra tecken som inkluderas i det är TAB. Whitespace (WS) innebär att när vi skriver det på skärmen blir det ett mellanrum mellan det som finns framför och det som finns bakom WS. Men det blir bara ett. Så om vi skriver: så blir utskriften på skärmen: 40

Hej världen och skriver vidare här. (SPACE flera gånger) Och avslutar här. För att få radbrytningar kan vi t.ex. använda HTML-taggen. För att få flera mellanslag efter varandra kan man använda. så blir utskriften på skärmen: Hej världen och skriver vidare här. (SPACE flera gånger) Och avslutar här KONKATENERING Om man vill lägga ihop två eller flera med varandra måste man använda konkateneringstecknet punkt. Utskriften blir: StefanFolkesson Kanske inte vad vi hoppades på. Om vi lägger till ett mellanslag i konkateneringen får vi ett fint mellanslag mellan förnamnet och efternamnet. Stefan Folkesson FUNKTIONER För att förvirra er lite grann tänkte vi börja avsnittet Funktioner med en funktion som faktiskt inte är en funktion utan en programstruktur, vilket betyder att du inte behöver ha en parentes runt om indata. 41

använder man för att få en utdataström. Skriver ut Hej Världen! på det som är definierat som utdatahanterare, oftast skärmen. kan även förkortas till ett lika med-tecken ( ) om du skriver det direkt efter öppningstaggen för php. Men då måste du använda en kort öppningstagg ( ) för att det skall fungera. Med kan man även skriva ut innehållet i variabler. Antingen genom att konkatenera na med variablerna. Skriver ut: Vi har 4 kronor i fickan. Eller genom att skriva in variabeln i strängen. Skriver ut: Vi har 4 kronor i fickan. Dock skall det påpekas att om man använder enkla citattecken så kommer variabelns namn att skrivas ut. Skriver ut: Vi har $pengar kronor i fickan. Vidare kan man skicka in flera parametrar till och låta själv lägga ihop strängen. Skriver ut: Vi har 4 kronor i fickan. 42

En liknande funktion är : Första parametern är strängen som skall skrivas ut och efterföljande parameter innehåller variabler som skall fogas in i strängen. Skriver ut: Vi har 4 kronor i fickan. I strängen har man platshållare för varje variabel. Och de matas in i den ordning de kommer som parameter. Skriver ut: Två olika tal är 34 och 100. Skriver ut: Två olika tal är 100 och 34. Platshållarna talar om hur man skall hantera parametrarna där står för ett heltal. En kort lista på olika platshållare: heltal decimaltal tal i grundpotensform tal i binärform tal i oktalform tal i hexadecimalform sträng Man kan även ändra om ordningen på hur parametrarna hanteras. Skriver ut: Två olika tal är 100 och 34. 43

Kan vara bra att hålla reda på längden på en sträng. Skriver ut: Strängen Hej världen! har 12 tecken. Om man hanterar kan det vara bra att kunna skriva ut den baklänges. Skriver ut: Strängen Hej världen! baklänges blir:!nedlräv jeh FORMATERA STRÄNGAR När man hanterar är det skillnad på stor och liten bokstav. För att undvika detta kan det vara bra att använda följande funktioner. Gör om hela strängen till gemener. Gör om hela strängen till VERSALER. Sätter första bokstaven i varje ord till versal. Sätter första bokstaven i strängen till versal. 44

Skriver ut: detta är en mening! DETTA ÄR EN MENING! Detta ÄR En MeninG! Detta ÄR en MeninG! Detta Är En Mening! Detta är en mening! Man måste även kunna dela upp en sträng i en eller flera delar. Med hjälp av får vi varje ord i en array om man använder mellanslag som avgränsare. Skriver ut: Detta ÄR en MeninG! Om man har en array och vill slå ihop den till en sträng använder man istället. Skriver ut: En God Jul Önskar Kalle 45

Om man vill dela upp strängen i lika stora delar kan man använda. Om man inte ger en längd parameter så delar den automatiskt upp strängen i en-tecken-delar. Skriver ut: He j Vä rl de n! REGULAR EXPRESSIONS Ibland vill man dela upp strängen i väldigt specifika delar och då måste man oftast använda regular expressions för att träffa rätt i strängen. Regular expressions (regex) är en hel vetenskap i sig som vi inte går närmare in på i den här boken. Men vi tänkte beskriva en enkel hantering av regex här och nu. Med delar du upp en sträng till en array baserat på ett mönster. Om vi nu vill dela upp en sträng i dess ord kan man göra så här: Detta mönster delar upp strängen i delar på mellanslag vilket gör att man, om tolkas som ett ord. Detta är kanske inte optimalt. Om vi vill lägga in flera alternativ till uppdelningen kan vi använda hakparentes. 46

Detta löser det problemet. Nu delar vi upp strängen baserat på mellanslag eller komma. Om man vill vara riktigt ordentlig skall man skriva: betyder white space så nu kommer enter, tabb och mellanslag förutom komma att träffas. betyder att vi kan matcha ett eller flera avdelningstecken. Så om vi har dubbla mellanslag eller komma mellanslag så blir det ändå bara en uppdelning. Ibland vill man hitta saker i en sträng och då kan regex vara smidigt att använda. Om vi nu skulle vilja hitta alla om i föregående exempels mening kan man skriva så här: Detta ger oss svaret att det är ett om i meningen, men det är förmodligen inte det vi ville veta som vi får reda på. I denna sökning matchar vi nämligen om i som. För att söka enbart på ordet om måste vi lägga till runt om ordet. Så här: Styrkan i att göra en matchning med regex är att man kan lägga till wildcards och upprepningar. Om vi vill se om vi har någon siffra i strängen kan man skriva: Oj, vi effektiviserade visst koden lite. Det blir gärna så när man arbetar med regexexempel. Det skulle kanske vara intressant att veta vilken siffra vi har i strängen med och det finns inbyggt i att spara vad vi träffade. 47

Vi lade till variabeln och kompletterade mönstret med ett för att träffa siffror som har fler än ett tecken. Man kan även göra mycket mer avancerade matchningar. Vi använder som avgränsare här för att används i matchningen, då blir det oftast problem om man använder den som avgränsare. Här matchar vi en specifik tagg i detta fallet. Matchar en e-postadress i en sträng. När vi nu lärt oss att leta reda på saker i en sträng kan vi givet också ersätta dem. Om vi skall byta ut alla Kalle till kalle i en sträng så rekommenderar vi att man använder och inte en då den är mycket snabbare och smidigare att arbeta med. Vi kan även byta ut flera saker samtidigt med hjälp av arrayer. 48

Om vi dock skall göra lite mer avancerade matchningar så måste vi använda. 49