c# med asp · © ec utbildning ab 2013 -01 15 7 strängar • escape-sekvenser –om du vill att...
TRANSCRIPT
© Elektronikcentrum i Svängsta AB
1
Strängar
© 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: ” ”, ”#&/%”
© 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.
© 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.";
© 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 \
© 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
© 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.
© 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
© Elektronikcentrum i Svängsta AB
9
Strängformatering
© 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.
© 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
© 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.
© 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
© 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.
© 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
© 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
© 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