Kezdőoldal » Számítástechnika » Programozás » Hogy lehet egy string tömb...

Hogy lehet egy string tömb elemeit int-té konvertálni?

Figyelt kérdés

string[] st = new string[3] {"abc","gép","példa"};


Convert.ToInt32(st[0]);

Console.WriteLine(st[0]);

Console.ReadKey();


Amikor futtatom, hibaüzenetet dob ki: Nem megfelelő a bemeneti karakterlánc formátuma.



2019. febr. 23. 15:55
1 2
 11/13 tabaki ***** válasza:

Még mindig nem tudjuk mit akarsz. Abban az értelemben nincs mivé átalakítani, hogy a program egyszercsak előpukkantja a semmiből, hogy mondjuk a nagy 'A' mostantól -4-et jelent. Az 'A' (legalábbis a tízes számrendszerben) ugyanúgy nem számjegy, mint a "gép" szó karakterei. Viszont megvan az a lehetőséged -- erre utalt rögtön az első válaszoló, meg #7 is a maga modorában --, hogy a karakter ASCII-értékét tekintsd a kivánt számnak. Arról van szó, hogy a gép mindent, így a betűket és egyéb jeleket is számként ábrázolja. Ez úgy lehetséges, hogy a számítástechnikusok valamikor az idők hajnalán létrehoztak egy szabványt, az ASCII-táblázatot, amelyre leszel szíves rákeresni. Ebben egy bizonyos sorrendben beszámozták az akkoriban használt jeleket, és amikor a gép szöveget használ, ezeknek a sorszámoknak az alapján azonosítja a karaktereket. Az imént említett 'A' betű sorszáma például 65, vagyis, amikor a rendszer egy karakterváltozóban 65-öt talál, akkor az ASCII-tábla alapján tudja, hogy a nagy 'A' karakterről van szó. Mindez azonban nem változtat azon, hogy ott valójában egy 65-ös számérték helyezkedik el. Ha a programot típuskényszerítéssel arra kéred, hogy ezt ne hagyományosan, hanem számként jelenítse meg, ki is fogja neked írni. Ha tehát például berakod a programodba ezt a sort:

Console.WriteLine((int)'A');

...akkor a számot kapod. Vagyis ebben az értelemben minden karakter egy meghatározott számértéket jelent, és éppen úgy használható műveletekre, mint az egyéb számok -- viszont néha igen hasznos szem előtt tartani, hogy ezek egy bizonyos szabványban kiosztott sorszámok, nem pedig a természet rendjéből adódó szükségszerűség, hogy bármit számmá lehessen alakítani.

Egy karaktertömb elemeiből a fenti módon csinálhatsz számokat, de mivel a stringek maguk is karaktertömbök, az általad elképzelt stringtömb sem jelent gondot, kétdimenziós tömbként ugyanúgy indexelheted karakterenként. Tehát, amíg az "abc" karakterlánc egész számként nem értelmezhető, addig az 'a', 'b', 'c' betűinek ASCII-értékként való kiírása problémátlan. Még tegnapelőtt írtam neked ezt a programot, ennek illusztrálására:


using System;


namespace tabaki{

      class Program{

            static void Main(){

                  string[] st = new string[3] {"abc","gép","példa"};

                  for(int y = 0; y < st.Length; y++){

                        Console.Write("\"{0}\":", st[y]);

                        for(int x = 0; x < st[y].Length; x++)

                              Console.Write(" {0}", (int)st[y][x]);

                        Console.WriteLine();

                  }

                  Console.ReadKey();

            }

      }

}

2019. febr. 27. 02:07
Hasznos számodra ez a válasz?
 12/13 anonim ***** válasza:

# 11/11 Időpont ma 02:07:


Ez is csak részben igaz.

Az tény, hogy a számítógép processzora nem ismer egyebet, csak számokat.

Ezért, magasabb absztrakciós szinten történik egy hozzárendelés, tehát hogy mely szám milyen karakternek felel meg, már ha történetesen karakterekkel van dolgunk.

Az azonban általánosságban téves, hogy az ASCII kódlap lenne a megfeleltetés eszköze. Bármilyen megfeleltetés lehetséges, amit az operációs rendszer szintjén, vagy magasabb szinten megvalósítanak. Ezek egyike az ASCII.

2019. febr. 27. 10:00
Hasznos számodra ez a válasz?
 13/13 tabaki ***** válasza:

@#12:

"Az azonban általánosságban téves, hogy az ASCII kódlap lenne a megfeleltetés eszköze."

Sajnos, hajnali kettőkor már nem éreztem elég erőt arra, hogy még jobban belebonyolódjam, és akkor úgy tűnt, az "egy bizonyos szabványban kiosztott sorszámok" kellően utal rá, hogy más szabványok is léteznek -- reggelre kelve már én sem látom olyan erősnek ezt az illedelmes célzást. Pedig igen, itt van a kutya elásva, jó, hogy kiigazítottál.

2019. febr. 27. 12:29
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!