Cum pot converti fișiere String la Int?

Am un TextBoxD1.Text și vreau să-l convertească la o int să-l stocați într-o bază de date.

Cum pot face asta?

Soluția

Încercați acest lucru:

int x = Int32.Parse(TextBoxD1.Text);

sau mai bine:

int x = 0;

Int32.TryParse(TextBoxD1.Text, out x);

De asemenea, deoarece Int32.TryParse returnează o bool poti folosi valoarea returnată de a lua decizii cu privire la rezultatele de parsare încercare:

int x = 0;

if (Int32.TryParse(TextBoxD1.Text, out x))
{
    // you know that the parsing attempt
    // was successful
}

Dacă sunteți curioși, diferența între Analiza " și " TryParse` este cel mai bine rezumată astfel:

TryParse este ca Analiza metodă, cu excepția TryParse nu arunca o excepție dacă conversie eșuează. Se elimină trebuie să utilizați excepție de manipulare pentru a testa pentru o FormatException în cazul că s este invalid și nu poate fi cu succes analizat. - MSDN

Comentarii (8)
Convert.ToInt32( TextBoxD1.Text );

Utilizați această opțiune dacă vă simțiți încrezător că conținutul casetei de text este un int valid. O opțiune mai sigură este

int val = 0;
Int32.TryParse( TextBoxD1.Text, out val );

Acest lucru vă va oferi cu unele valoare implicită puteți folosi. `Int32.TryParse, de asemenea, returnează o valoare booleană care indică dacă a fost în măsură să elimine sau nu, astfel încât să puteți folosi chiar și ca o condiție de un "dacă" declarație.

if( Int32.TryParse( TextBoxD1.Text, out val ){
  DoSomething(..);
} else {
  HandleBadInput(..);
}
Comentarii (2)
int.TryParse()

Nu o't arunca dacă textul nu este numeric.

Comentarii (2)
int myInt = int.Parse(TextBoxD1.Text)

O alta modalitate ar fi:

bool isConvertible = false;
int myInt = 0;

isConvertible = int.TryParse(TextBoxD1.Text, out myInt);

Diferența dintre cele două este că primul va arunca o excepție în cazul în care valoarea în caseta de text poate't fi transformat, întrucât cea de-a doua ar întoarce false.

Comentarii (1)

Aveți nevoie pentru a analiza șir, și, de asemenea, necesitatea de a se asigura că acesta este cu adevărat în formatul de un număr întreg.

Cel mai simplu mod este aceasta:

int parsedInt = 0;
if (int.TryParse(TextBoxD1.Text, out parsedInt))
{
   // Code for if the string was valid
}
else
{
   // Code for if the string was invalid
}
Comentarii (0)

Fii atent atunci când se utilizează Converti.ToInt32() pe un char!
Se va reveni la UTF-16 Cod de caracter!

Dacă ai acces șir numai într-o anumită poziție cu ajutorul [i] operatorul de indexare se va reveni o char și nu o string!

String input = "123678";

int x = Convert.ToInt32(input[4]);  // returns 55

int x = Convert.ToInt32(input[4].toString());  // returns 7
Comentarii (0)

Bucurați-vă de ea...

int i = 0;
string s = "123";
i =int.Parse(s);
i = Convert.ToInt32(s);
Comentarii (0)
int x = 0;
int.TryParse(TextBoxD1.Text, out x);

La TryParse declarație returnează un boolean reprezentând dacă analiza a reușit sau nu. Dacă a reușit, analizat valoare este memorată în cel de-al doilea parametru.

Vezi Int32.TryParse (String, Int32) pentru mai multe informații detaliate.

Comentarii (0)

În timp ce există deja multe solutii aici care descriu int.Analiza, nu's ceva important lipsește în toate răspunsurile. De obicei, șirul reprezentărilor de valori numerice diferă de cultură. Elementele numerice, siruri de caractere, cum ar fi simboluri monetare, de grup (sau mii), separatoare și separatoare zecimale toate varia în funcție de cultură.

Dacă doriți să creați un mod robust pentru a analiza un șir la un număr întreg, l'e, prin urmare, important să se ia informații de cultură în considerare. Dacă tu nu't, [cultura actuală settings][1] va fi folosit. Care ar putea da un utilizator destul de neplăcută surpriză ... sau chiar mai rău, dacă te're parsarea formate de fișiere. Dacă doriți doar limba engleză parsarea, l's cel mai bun pentru a face pur și simplu explicit, prin specificarea culturii setările pentru a utiliza:

var culture = CultureInfo.GetCulture("en-US");
int result = 0;
if (int.TryParse(myString, NumberStyles.Integer, culture, out result))
{
    // use result...
}

Pentru mai multe informații, citiți pe CultureInfo, în mod special [NumberFormatInfo][2] de pe MSDN.

[1]: https://msdn.microsoft.com/en-us/library/system.threading.thread.currentculture(v=vs. 110).aspx [2]: https://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo(v=vs. 110).aspx

Comentarii (0)

Puteți scrie propriile extesion metodă

public static class IntegerExtensions
{
    public static int ParseInt(this string value, int defaultValue = 0)
    {
        int parsedValue;
        if (int.TryParse(value, out parsedValue))
        {
            return parsedValue;
        }

        return defaultValue;
    }

    public static int? ParseNullableInt(this string value)
    {
        if (string.IsNullOrEmpty(value))
        {
            return null;
        }

        return value.ParseInt();
    }
}

Și ori de câte ori în codul de apel

int myNumber = someString.ParseInt(); // returns value or 0
int age = someString.ParseInt(18); // with default value 18
int? userId = someString.ParseNullableInt(); // returns value or null

În acest caz concret

int yourValue = TextBoxD1.Text.ParseInt();
Comentarii (5)

Așa cum sa explicat în TryParse documentația, TryParse() returnează valoarea booleană care indică faptul că un număr valid a fost găsit:

bool success = Int32.TryParse(TextBoxD1.Text, out val);

if (success)
{
// put val in database
}
else
{
// handle the case that the string doesn't contain a valid number
}
Comentarii (0)

Puteți folosi fie,

int i = Convert.ToInt32(TextBoxD1.Text);

sau

int i =int.Parse(TextBoxD1.Text);
Comentarii (0)
int x = Int32.TryParse(TextBoxD1.Text, out x)?x:0;
Comentarii (1)

Conversie de "string" a int se poate face pentru: int, Int32, `Int64 și alte tipuri de date care reflectă întreg tipuri de date în .NET

Exemplele de mai jos arată această conversie:

Acest spectacol (pentru informatii), date adaptor element inițializat la int valoare. Același lucru poate fi făcut direct ca,

int xxiiqVal = Int32.Parse(strNabcd);

Ex.

string strNii = "";
UsrDataAdapter.SelectCommand.Parameters["@Nii"].Value = Int32.Parse(strNii );

[Link-ul pentru a vedea acest demo][1].

Comentarii (0)
//May be quite some time ago but I just want throw in some line for any one who may still need it

int intValue;
string strValue = "2021";

try
{
    intValue = Convert.ToInt32(strValue);
}
catch
{
    //Default Value if conversion fails OR return specified error
    // Example 
    intValue = 2000;
}
Comentarii (1)

Acest lucru ar face

string x=TextBoxD1.Text;
int xi=Convert.ToInt32(x);

Sau puteți folosi

int xi=Int32.Parse(x);

Consultați Rețea Microsoft pentru Dezvoltatori pentru mai multe informații

Comentarii (0)

Puteți converti un string la int în C# folosind:

Funcțiile converti clasa respectiv a Converti.ToInt16(), Converti.ToInt32(), Converti.ToInt64() sau prin utilizarea Analiza " și " TryParse Funcții. Sunt prezentate exemple de aici.

Comentarii (0)

Ai, de asemenea, poate utiliza o metodă de prelungire][1], astfel încât acesta va fi mai ușor de citit (deși toată lumea este deja folosit periodic Analiza funcțiilor).


public static class StringExtensions
{
    /// 
    /// Converts a string to int.
    /// 
    /// <param name="value">The string to convert.The string to check.The out int parameter.
Comentarii (0)

se poate face ca mai jos, fără TryParse sau încorporat funcții

static int convertToInt(string a)
{
    int x=0;
    for (int i = 0; i < a.Length; i++)
        {
            int temp=a[i] - '0';
            if (temp!=0)
            {
                x += temp * (int)Math.Pow(10, (a.Length - (i+1)));
            }              
        }
    return x ;
}
Comentarii (4)

Puteți converti șir de caractere la o valoare întreagă, cu ajutorul de analiza metoda.

De exemplu:

int val = Int32.parse(stringToBeParsed);
int x = Int32.parse(1234);
Comentarii (0)