Strängar 1 © Elektronikcentrum i Svängsta AB 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 2 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 3 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 4 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 \\ Backslash \ © EC Utbildning AB mellanrum 2013-01-15 5 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 6 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 7 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 © EC Utbildning AB 2013-01-15 8 Strängformatering 9 © Elektronikcentrum i Svängsta AB 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 10 Strängformatering • Strängformatering – De vanligaste formateringarna: Typ Kod 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 General Formateras för att visa med ett antal värdesiffror G eller g Antingen som exponentiell eller fixed decimal, beroende på vilken som är mest kompakt © EC Utbildning AB Exempel 123,00 123 2013-01-15 11 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 12 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); string quantityString = String.Format("{0:f0}", 15000.78); string paymentString = String.Format("{0:f3}", 432.8175); //"2,50 %" //"15001" //"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 13 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 14 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 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. © EC Utbildning AB 2013-01-15 16 • Ö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) . © EC Utbildning AB 2013-01-15 17
© Copyright 2024