c convert string int using parse
Výukový program, jak převést řetězec na Int v C #. Naučíte se více metod převodu, jako je Parse, TryParse & Convert na základě požadavků:
Většina z nás byla v této situaci jednou za čas, když potřebujeme převést řetězec na celočíselný datový typ.
Například, řekněme, že dostávám řetězec „99“ ze zdroje dat (z databáze, vstupu uživatele atd.), ale potřebujeme jej jako celé číslo k provedení některých výpočtů, zde je nejprve musíme převést na celé číslo, než začneme některé aritmetické operace.
Existuje několik způsobů, jak toho dosáhnout, a podívejme se na několik široce používaných metod.
=> Podívejte se na celou C # Training Series zde
Co se naučíte:
- Metoda Int.Parse
- Metoda System.Convert
- metoda int.TryParse
- Převod nečíselného řetězce na celé číslo
- Závěr
- Doporučené čtení
Metoda Int.Parse
Metoda Int.Parse funguje jako zázraky, pokud jste si jisti, že vaše konverze nikdy nevyvolá chybu. Toto je jeden z nejjednodušších a nejjednodušších způsobů převodu řetězce na celé číslo. Pokud převod není úspěšný, může dojít k chybě.
Tato metoda se používá hlavně v případě, že máte celé číslo ve formě řetězce. Například, obdržíte číslici řetězce od vstupu uživatele, jako je „99“. Zkusme jednoduchý program pro převod tohoto řetězce na celé číslo.
Program
program veřejné třídy
{ public static void Main() { String str = '99'; int number = int.Parse(str); Console.WriteLine(number); } }
Výstup
Výstup výše uvedeného programu:
99
Vysvětlení
Program vrátí číselnou hodnotu řetězce.
Složitá část použití metody int.Parse je problém házení chyby, pokud řetězec není ve správném formátu, tj. Pokud řetězec obsahuje jiné znaky než číslice.
Pokud je přítomen jiný znak než číslice, tato metoda vyvolá následující chybu:
“[System.FormatException: Input string was not in a correct format.]”
Metoda System.Convert
Dalším způsobem, jak převést řetězec na celé číslo, je použití metody Convert. Tato metoda není tak jednoduchá jako předchozí metoda, protože musíme být připraveni zvládnout jakoukoli výjimku, která může nastat v důsledku interakce programu s chybnými daty.
Výjimky mohou také spotřebovat hodně paměti, proto se nedoporučuje setkat se s žádnou nebo nechtěnou výjimkou během procesu provádění. Například, pokud dojde k výjimce ve smyčce, pak se při jejich házení spotřebuje spousta paměti, a proto zpomalí váš program.
Použití metody Převést je docela užitečné, pokud chcete znát důvod selhání analýzy. Může zachytit výjimku a zobrazit podrobnosti o chybě.
Program
public class Program { public static String intString = '123'; public static void Main(string[] args) { int i = 0; try { i = System.Convert.ToInt32(intString); } catch (Exception e) { } Console.WriteLine('The converted int is : '+i); } }
Výstup
vstup a výstup souboru c ++
„Převedený int je: 123“
Vysvětlení
Ve výše uvedeném programu jsme použili metodu převodu k převodu řetězce na celé číslo. Zde, pokud je proměnná String číselná, pak bude převedena na celé číslo, ale v případě chybného řetězce a vyvolá výjimku, která bude zpracována blokem catch.
metoda int.TryParse
Jedním z nejběžnějších způsobů, jak analyzovat řetězcovou reprezentaci na 32bitové celé číslo, je použití metody TryParse. Tato metoda nezohledňuje žádné prázdné místo před nebo za řetězcem, ale všechny ostatní znaky řetězce by měly mít vhodný číselný typ, aby se usnadnil převod.
Například, jakékoli prázdné místo, abeceda nebo speciální znak v proměnné může způsobit chybu.
Metoda TryParse přijímá dva parametry, prvním je řetězec, který chce uživatel převést, a druhým parametrem je klíčové slovo „out“ následované proměnnou, do které chcete hodnotu uložit. Vrátí hodnotu na základě úspěchu nebo neúspěchu převodu.
TryParse(String, out var)
Pojďme se podívat na jednoduchý program pro převod číselného řetězce na celé číslo.
Program
class Program { static void Main(string[] args) { try { string value = '999'; int numeric; bool isTrue = int.TryParse(value, out numeric); if (isTrue) { Console.WriteLine('The Integer value is ' + numeric); } } catch (FormatException e) { Console.WriteLine(e.Message); } } }
Výstup
Hodnota celého čísla je 999
Vysvětlení
Ve výše uvedeném programu jsme použili ‚TryParse 'k převodu číselného řetězce na celé číslo. Nejprve jsme definovali řetězcovou proměnnou, kterou musíme převést. Poté jsme inicializovali další proměnnou „numeric“ typu integer. Pak jsme použili booleovskou proměnnou k uložení návratové hodnoty try parse.
Pokud vrátí hodnotu true, znamená to, že řetězec byl úspěšně převeden na celé číslo. Pokud vrátí hodnotu false, dojde k nějakému problému se vstupním řetězcem. Obklopili jsme celý fragment programu uvnitř bloku try-catch, abychom zvládli jakoukoli výjimku, která se může vyskytnout.
Převod nečíselného řetězce na celé číslo
Ve všech výše uvedených programech jsme se snažili převést hodnotu číselného řetězce na celé číslo, ale ve scénáři reálného světa musíme většinu času zpracovávat řetězce, které obsahují speciální znaky, abecedy spolu s číslicemi. Pokud chceme získat pouze číselnou hodnotu, pak to může být trochu obtížné.
Například, máme cenový řetězec s hodnotou 100 $ a musíme získat cenu v celých číslech. V tomto případě, pokud se pokusíme použít některý z výše diskutovaných přístupů, získáme výjimku.
Tyto typy scénářů lze snadno zpracovat pomocí smyčky for a regex po rozdělení řetězce na pole znaků.
Pojďme se podívat na program:
class Program { static void Main(string[] args) { string price = '0'; string priceNumeric = ''; for(inti =0; i Výstup
Číselná hodnota ceny je: 100
nejlepší software pro vyčištění počítače
Vysvětlení:
Ve výše uvedeném kódu máme cenovou proměnnou datového typu řetězec. Poté definujeme a inicializujeme další proměnnou řetězce priceNumeric. Myšlenkou je použít ji k udržení numerické části cenové proměnné.
Dále jsme pomocí smyčky for zkontrolovali každý jednotlivý znak v řetězci, zda neobsahuje číslice. K tomu jsme nejprve načetli znaky v proměnné ch pomocí indexu. Poté jsme pomocí výrazu regulárního výrazu zkontrolovali, zda se znak, který jsme vybrali z řetězce, shoduje s libovolnou číselnou číslicí či nikoli. (Výraz „ d“ Regexu označuje shodu s jednou číselnou číslicí.).
Potom zřetězíme a uložíme číselný řetězec do proměnné priceNumeric. Po dokončení smyčky budou do této proměnné přidány všechny vaše číselné řetězce a každý další znak včetně speciálních znaků, abeced atd. Bude odstraněn.
Jak víme, tento řetězec nyní obsahuje pouze číselné znaky a můžeme použít přímo převést k transformaci tohoto řetězce na celé číslo.
Závěr
V tomto kurzu jsme se naučili, jak můžeme převést řetězec na celé číslo. Naučili jsme se také používat různé metody, které lze použít pro převod na základě požadavku.
Doporučené čtení = >> Jak převést řetězec na celé číslo v Javě A Jak převést celé číslo na řetězec v Javě
Dále jsme diskutovali o programu pro převod řetězců se speciálními znaky nebo abecedami na celé číslo odstraněním necelých částí. Tento ukázkový program lze vylepšit podle požadavků uživatele a lze jej použít k načtení číselných dat z libovolného řetězce.
=> Přečtěte si C # průvodce pro začátečníky zde
Doporučené čtení
- C # String Tutorial - Metody řetězců s příklady kódu
- Výukový program Java String s funkcí String Buffer a String Builder
- Java vlákna s metodami a životním cyklem
- Funkce řetězce Python
- Výukový program pro rozdělení řetězce v Pythonu
- Naučte se používat C # StringBuilder třídu a její metody s příklady
- Pokročilé skriptování prostředí Unix: pole, operátory testování souborů a řetězců, speciální proměnné
- Generátor náhodných čísel C # a generátor náhodných řetězců C # s příklady kódu