Konvertering från sträng. Winstrand Development

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

Objektorienterad Programmering (TDDC77)

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

Metoder (funktioner) Murach s: kap Winstrand Development

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

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

Exceptions (undantag) Murach s: kap 7

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

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

Övning. Introduktion och förberedelser

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Övning2. Variabler. Data typer

TDIU01 - Programmering i C++, grundkurs

Arrayer (vektorer) Murach s: kap Elektronikcentrum i Svängsta AB

Winstrand Development

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

TUTORIAL: KLASSER & OBJEKT

Objektorienterad programmering Föreläsning 11. Copyright Mahmud Al Hakim

Övningsuppgift. En array baklänges. Steg 1. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

TDIU01 - Programmering i C++, grundkurs

C++ - En introduktion

Innehåll. Användardefinierade typer. Användardefinierade typer Kategorier. Konstruktorer. Konstruktorer Två sätt att skriva initiering av medlemmar

Objektorienterad Programmering (OOP) Murach s: kap 12-16

(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

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

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Föreläsningsmaterial (Syntax och variabler)

Programmeringsteknik I

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner

Variabler, värden och typer

Variabler, värden och typer

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

Föreläsning 2 Programmeringsteknik och C DD1316

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

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

Strängar. Elektronikcentrum i Svängsta AB

TENTAMEN OOP

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

Typkonvertering. Java versus C

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

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

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

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

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

F4. programmeringsteknik och Matlab

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?

Klassdeklaration. Metoddeklaration. Parameteröverföring

Tentamen OOP

Objektorienterad programmering Föreläsning 4

Parameteröverföring. Exempel. Exempel. Metodkropp

Grundläggande programmering med C# 7,5 högskolepoäng

ADO.NET Murach Kapitel 17-20

Metoder. Inledande programmering med C# (1DV402)

Statistik över heltal

DD1361 Programmeringsparadigm. Carina Edlund

2203$( Föreläsning ii - Mer om Java bla this och konstruktorer. Exempel: lampa

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

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

DD1314 Programmeringsteknik

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Introduktion. Lagom är bäst. OO eller ej? TDP004 Objektorienterad Programmering Fö 7 Objektorienterad design, tips och råd

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

LÖSNINGSFÖRSLAG TENTAMEN

Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT / 26

Programmering A. Johan Eliasson

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

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

OOP Objekt-orienterad programmering

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit

Laboration 1. Utgåva 1 Gäller från

Funktionens deklaration

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

Användar- och systemdokumentation

Variabler, värden och typer

TDDC77 Objektorienterad Programmering

PROGRAMMERING-Java Omtentamina

Classes och Interfaces, Objects och References, Initialization

Lektion 4. Datateknik A, Java I, 5 poäng

Introduktion till Java

Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Visual Basic, en snabbgenomgång

Tentamen Grundläggande programmering

Övningar Dag 2 En första klass

Karlstads Universitet, Datavetenskap 1

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas.

Funktioner. Linda Mannila

Programmering i C. Vad är C? Målsättning. Litteratur. Jämförelse med Java. Exempel : Ett program som skriver ut texten Hello, world

TDIU01 (725G67) - Programmering i C++, grundkurs

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Lösningsförslag övning 2.

tentaplugg.nu av studenter för studenter

Laboration A Objektsamlingar

Backcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet

Transkript:

1 Winstrand Development

Konvertering mellan strängar och datatyper När vi arbetar med de inbyggda datatyperna (int, double etc.) går det lätt att konvertera värdet till en sträng mha metoden.tostring() double value = 0.15; //Gives the same result string valuestring = "value: " + value.tostring(); valuestring = "value: " + value; //.ToString() is implicitly called Winstrand Development 2013-01-23 2

Konvertering från sträng Om vi skriver in ett tal i en sträng är inte detta ett värde av till exempel datatyperna int eller double. Tal i en sträng hanteras som vilka tecken som helst. Därför går det inte att direkt konvertera strängar till en annan typ. string valuestring = "10"; //This will cause a compile time error! int value = valuestring; Winstrand Development 2013-01-23 3

Konvertering från sträng Vi behöver alltså ett tillvägagångssätt för att konvertera värden inbäddade i strängar. I C# finns det ett flertal sätt att utföra konverteringen från strängar till andra datatyper. Klassen Convert Parse()-metoderna som finns tillgängliga i alla inbyggda datatyper (int, double ) TryParse()-metoderna (avancerat). Samma tillgänglighet som Parse(). Är säkrare att använda, men kräver mer kod för att kunna användas. Winstrand Development 2013-01-23 4

Klassen Convert Denna klass innehåller ett stort antal metoder för att konvertera olika datatyper och klasser. Alla metoder i denna klass är statiska därför anropas de direkt på klassen Convert. Till exempel Convert.ToDouble() Man skickar med strängen som ska konverteras och får som returvärde tillbaka ett värde av vald typ Winstrand Development 2013-01-23 5

Klassen Convert Vanligaste metoderna Metod Till typ Exempel ToDecimal() decimal string text = "15,5"; decimal value =Convert.ToDecimal(text); ToDouble() double string text = "15,5"; double value = Convert.ToDouble(text); ToInt32() int string text = "10"; int value = Convert.ToInt32(text); Winstrand Development 2013-01-23 6

Metoden Parse() I alla inbyggda datatyper finns en statisk metod som heter Parse(). Parse() fungerar på liknande sätt som metoderna i Convert-klassen då man skickar med den sträng som ska konverteras och får tillbaka den valda datatypen. Winstrand Development 2013-01-23 7

Metoden Parse() Några exempel string text1 = "15,5"; string text2 = "10"; decimal valuedec = decimal.parse(text1); double valuedbl = double.parse(text1); int valueint = int.parse(text2); Winstrand Development 2013-01-23 8

Metoden TryParse() (avancerad) Precis som metoden Parse() finns TryParse() som statisk metod i våra datatyper. Den skiljer sig åt från Parse() då en tar två parametrar samt returnerar ett bool-värde. Första parametern är strängen som ska konverteras, den andra är variabeln som kommer innehåller det konverterade värdet (om konverteringen lyckades) Winstrand Development 2013-01-23 9

Metoden TryParse() (avancerad) bool result = int.tryparse(text2, out valueint); Returvärdet är alltså true om konverteringen lyckades, eller false om den misslyckades. Lyckades konverteringen har variablen (valueint i exemplet ovan) tilldelats värdet från strängen. Lägg märke till att det står out framför valueint. Detta visar att variabelns värde kan komma att ändras efter att vi kört metoden. Winstrand Development 2013-01-23 10

Typkonvertering 11 Winstrand Development

Typkonvertering Typkonvertering Det är inte bara mellan strängar vi vill kunna konvertera data, utan även andra datatyper ska kunna konverteras mellan varandra. Ofta vill vi kunna konvertera int till float, short till long, decimal till double etc. Winstrand Development 2013-01-23 12

Typkonvertering Typkonvertering Att konvertera från en datatyp som rymmer mindre mängd data kan ofta göras implicit. Alltså konvertering från short till int funkar alltid, precis som från float till double. int smallvalue = 10; long bigvalue = smallvalue; //Upcast works float smallvalue = 15.5f; double bigvalue = smallvalue; Winstrand Development 2013-01-23 13

Typkonvertering Typkonvertering Större värdetyper (dvs. de som innehåller mer data) måste alltid definiera konverteringen till mindre, annars genereras kompileringsfel. Konverterar vi alltså från decimal till float, eller long till int, måste detta alltså skrivas i koden. När vi konverterar från större värdetyper måste vi tänka på att vi kan få dataförluster då viss information utelämnas vid konverteringen Winstrand Development 2013-01-23 14

Typkonvertering Typkonvertering Syntaxen för att konvertera inbyggda datatyper är: datatype smallvalue = (datatype)bigvalue; Man skriver alltså den önskade datatypen inom parentes framför variabeln som ska konverteras // Talet ryms i smallvalue men måste ändå konverteras long bigvalue = 999999; // = 999999 int smallvalue = (int)bigvalue; // = 999999 // värdet är 1051.5236593059936908517350158M decimal precise = (decimal)bigvalue / 951M; // trunkerat till 1051.52368 float other = (float)precise; Winstrand Development 2013-01-23 15