c# med asp · © ec utbildning ab 2013 -01 15 7 strängar • escape-sekvenser –om du vill att...

17
© Elektronikcentrum i Svängsta AB 1 Strängar

Upload: others

Post on 23-Feb-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© Elektronikcentrum i Svängsta AB

1

Strängar

Page 2: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© EC Utbildning AB 2013-01-15

2

Strängar

• Strängar

– Vanligtvis arbetar man i en applikation med

text av olika slag.

– I programmeringsvärden sparar man text i

strängar, (eng. strings).

– Dessa är alltså en följd av tecken som kan

vara:

• Alfanumeriska: ”Hello”, ”123”, ”string951” och

• Specialtecken: ” ”, ”#&/%”

Page 3: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© EC Utbildning AB 2013-01-15

3

Strängar

• Strängar

– Man kan bygga ihop flera strängar med

plusoperatorn

• Exempel: string str = ”Jag är ” + ” en sträng”;

– Det går även att lägga till värden från

andra variabler på detta sätt så man enkelt

kan presentera värden.

– Använder vi operatorn + mellan strängar

kan vi även dela upp text på flera rader.

Page 4: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© EC Utbildning AB 2013-01-15

4

Strängar

• Strängar

– Exempel:

int answer = 42;

string msg = "Jag är: ";//msg = "Jag är: "

msg += "en sträng!!!"; //msg = "Jag är: en sträng!!!"

msg = "answer" + " = "

+ answer; //msg = "answer = 42“

msg = "Jag är en sträng som "

+ "innehåller mycket text. "

+ "Därför är jag uppdelad på "

+ "flera rader.";

Page 5: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© EC Utbildning AB 2013-01-15

5

Strängar

• Escape-sekvenser

– Escape-sekvenser är speciella tecken som

kan ingå i en sträng och börjar alltid med

ett backslash (\-tecknet)

Tecken Beskrivning Exempel

\" Citattecken "ett citat"

\n Ny rad (new line) Rad 1

Rad 2

\t Tab Mer mellanrum

\\ Backslash \

Page 6: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© EC Utbildning AB 2013-01-15

6

Strängar

• Escape-sekvenser string text = "John\nDoe";

text = "\"Extra\"\t\tSpace";

text = "Ett citat:\n"

+ "\"Programmering är kul\"\n\n"

+ "\tKälla: en programmerare";

John

Doe

"Extra" Space

Ett citat:

"Programmering är kul"

Källa: en programmerare

Page 7: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© EC Utbildning AB 2013-01-15

7

Strängar

• Escape-sekvenser

– Om du vill att strängen inte ska generera några dessa kan de stängas av med @-före strängen

– Detta innebär att strängen blir ”verbatim” • Texten tolkas precis som de är skrivna, tecken

för tecken.

• Enda undantaget är citattecken (”) som definieras av två stycken citattecken efter varandra ("").

– @-symbolen måste finnas framför alla strängar.

Page 8: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© EC Utbildning AB 2013-01-15

8

Strängar

• Escape-sekvenser

– Exempel på användning av verbatim

//Båda strängarna tolkas som

//C:\SharePoint\CSharp\Projects

string path = "C:\\SharePoint\\CSharp\\Projects";

string fldr = @"C:\SharePoint\CSharp\Projects"

string verbatim = @"\tecken \tolkas \noggrant, "

+ @"utom tecknet "" som skrivs med två citattecken";

\tecken \tolkas \noggrant, utom tecknet " som skrivs med två citattecken

Page 9: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© Elektronikcentrum i Svängsta AB

9

Strängformatering

Page 10: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© EC Utbildning AB 2013-01-15

10

Strängformatering

• Formatering av nummer i strängar

– När vi skriver ut värden på variabler vill vi

ofta ha dessa formaterade på ett speciellt

sätt.

– Exempelvis vill man skriva ut värdena som

valuta eller med ett visst antal värdesiffror.

– Med hjälp av de strängformateringar som

finns inbyggda i .NET får vi ännu bättre

kontroll över hur våra data ska

presenteras.

Page 11: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© EC Utbildning AB 2013-01-15

11

Strängformatering

• Strängformatering

– De vanligaste formateringarna:

Typ Kod Formateras för att visa Exempel

Currency C eller c som valuta (lokalt) 123,00 kr

Percent P eller p som procent (1 = 100%) 0,15 %

Exponential E eller e med vetenskaplig notaton 1,234567e+006

Fixed Decimal F eller f med ett antal värdesiffror 123,00

General G eller g Antingen som exponentiell

eller fixed decimal, beroende

på vilken som är mest

kompakt

123

Page 12: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© EC Utbildning AB 2013-01-15

12

Strängformatering

• Strängformatering

– För att använda en formatering behöver vi kunna skicka med formateringskoden.

– Detta kan göras på olika sätt: • Alla datatyper (och klasser) har en metod som

heter .ToString() som konverterar värdet till en sträng. I denna kan vi skicka med formateringskoden som en parameter.

• I Console.WriteLine() samt den statiska metoden String.Format().

– Här skriver man värdets index, sedan dess position inom måsvingar. Exempelvis ”{0:e}” för att formatera det första elementet.

Page 13: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© EC Utbildning AB 2013-01-15

13

Strängformatering

• Strängformatering

– Det går även att definiera precisionen för vår

formatering. Detta görs genom att ange

precisionen direkt efter formateringskoden

decimal theCost = 1547.2m;

int someBigNumber = 1499900;

//Using .ToString() on the variables

string cost = theCost.ToString("c"); //"1.547,20 kr"

string bigNumber = someBigNumber.ToString("e2");//"1,50e+006"

//Using the static method String.Format

string taxRate = String.Format("{0:p}", .025m); //"2,50 %"

string quantityString = String.Format("{0:f0}", 15000.78); //"15001"

string paymentString = String.Format("{0:f3}", 432.8175); //"432,818"

//Using Console.WriteLine()'s built in formatting feature

Console.WriteLine("Current price is {0:c}", theCost);

Console.WriteLine("Using 4 significant digits: {0:g4}", 15000.78);

Current price is 1.547,20 kr

Using 4 significant digits: 1,5e+04

Page 14: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© EC Utbildning AB 2013-01-15

14

Strängformatering

• Strängformatering

– Det går att skicka med flera variabler för utskrift. Vi kommer åt de olika variablerna genom att ange dess index

– Ofta inom programmering ligger det första elementet i en samling med data på indexplats 0, så även här.

– Vi kan alltså återanvända samma variabel på flera ställen i en sträng, och i vilken ordning vi vill.

Page 15: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© EC Utbildning AB 2013-01-15

15

Strängformatering

• Strängformatering //Declare several variables on the same line

decimal money = 10m, persons = 3m;

decimal result = money / persons;

double x = 4, power = 3;

Console.WriteLine("Ni är {0} personer som ska dela på {1:c}", persons, money);

Console.WriteLine("{0:c} / {1} st = {2:c} per person", money, persons, result);

Console.WriteLine("---");

Console.WriteLine("{0} * {0} * {0} = Math.Pow({0},{1}) = {2}",

x, power, Math.Pow(x, power));

Console.ReadKey();

Ni är 3 personer som ska dela på 10,00 kr

10,00 kr / 3 st = 3,33 kr per person

---

4 * 4 * 4 = Math.Pow(4,3) = 64

Page 16: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© EC Utbildning AB 2013-01-15

• Övning 1 Skriv ett program enligt anvisningarna nedan.

Läser in för och efternamn samt ålder.

Detta skall sedan presenteras på följande vis med förnamn och efternamn

och åldern enligt vetenskaplig notation.

Skriv sedan ut samma sak men byt plats på för och efternamn utan att

byta plats på variablerna på raden.

. Formateringen ska göras med formateringssträngarna.

16

Page 17: C# med ASP · © EC Utbildning AB 2013 -01 15 7 Strängar • Escape-sekvenser –Om du vill att strängen inte ska generera några dessa kan de stängas av med @-

© EC Utbildning AB 2013-01-15

• Övnign 2 Skriv ett program enligt anvisningarna nedan.

I en affär kostar en produkt 200 kr. Då den inte sålde så bra har man lagt på en

rabatt på 40 %. Din uppgift är nu att skriva ut dessa värden, samt det nya priset.

Utskriften ska vara rätt formaterad, alltså all presentation av priser ska anges som

valuta och rabatten ska anges som procent. Formateringen ska göras med

formateringssträngarna.

Rabatten kan beräknas med formeln

newPrice = oldPice*(1-discountRate)

.

17