String'i Int üçün necə çevirmək olar?

Mənim var

 TextBoxD1.Text 

və onu 'int' olaraq veritabanında saxlamaq üçün çevirmək istəyirik. Bunu necə edə bilərəm?

316
19 июня '09 в 23:02 2009-06-19 23:02 turki2009 19 iyun '09 saat 23: 00-da təyin olunub 2009-06-19 23:02
@ 24 cavab

Aşağıdakıları cəhd edin:

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

ya da daha yaxşı:

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

Əlavə olaraq, Int32.TryParse bir bool qaytararkən, ayrıştırma cəhdinin nəticələri haqqında qərar qəbul etmək üçün geri dəyərini istifadə edə bilərsiniz:

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

Əgər maraqlıysanız, ParseTryParse arasındakı fərq aşağıdakı kimi yaxşı xülasə edilir:

TryParse üsulu, Parse metoduna bənzəyir, əgər ConParse üsulu, dönüşüm edilmirsə istisnalar atmaz. Bu, s silməyimiz və uğurla təhlil edilə bilməyəcəyi FormatException istisnasını test etmək üçün istisna işləməyini istifadəni aradan qaldırır. - MSDN

562
19 июня '09 в 23:04 2009-06-19 23:04 Cavab Andrew Hare tərəfindən 19 iyun 19: 09-da 23:04, 2009-06-19 23:04
 Convert.ToInt32( TextBoxD1.Text ); 

Mətnin məzmununun etibarlı bir int olduğundan əmin olduğunuz halda bunu istifadə edin. Təhlükəsiz seçim

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

Bu, istifadə edə biləcəyiniz bəzi default dəyər verəcəkdir. Int32.TryParse ayrıca analiz edə biləcəyini və ya olmadığını göstərən Boolean dəyərini qaytarır, belə ki, onu if kimi istifadə edə bilərsiniz.

 if( Int32.TryParse( TextBoxD1.Text, out val ){ DoSomething(..); } else { HandleBadInput(..); } 
26
19 июня '09 в 23:04 2009-06-19 23:04 Cavab Babək Nafas tərəfindən 19 iyun 19: 09-da 23:04, 2009-06-19 23:04 tarixində verilir
 int.TryParse() 

Mətn sayısal deyilsə atmaq olmaz.

22
19 июня '09 в 23:05 2009-06-19 23:05 cavab 19 iyun 19: 09-da saat 23: 05 -da veriləcək

Dizi analiz etməli, ayrıca tam olaraq tam formatda olduğundan əmin olmalısınız.

Ən asan yol:

 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 } 
13
19 июня '09 в 23:06 2009-06-19 23:06 cavab Yaqub 19 iyun '09 'da 11:06' da verildi
 int myInt = int.Parse(TextBoxD1.Text) 

Başqa bir yol:

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

İki ikisi arasındakı fərq, mətn sahəsində olan dəyəri çevrilə bilməyəcək və ikincisi isə yalnız səhv olarsa, birinci bir istisna meydana gətirəcəkdir.

11
19 июня '09 в 23:08 2009-06-19 23:08 Cavab Andre Kraemer tərəfindən 19 İyun '09 'da 23:08' də verildi. 2009-06-19 23:08
 int x = 0; int.TryParse(TextBoxD1.Text, out x); 

The TryParse operator sintaksisin ayrılıp ayrılmadığını təmsil edən Boolean dəyərini qaytarır. Bu müvəffəqiyyətli olursa, təhlil edilən dəyər ikinci parametrdə saxlanılır.

Daha ətraflı məlumat üçün Int32.TryParse metoduna baxın (String, Int32) .

8
19 июня '09 в 23:11 2009-06-19 23:11 Cavab 19 iyun 09: 09-da Jorelli tərəfindən 2009-06-19 23:11

Enjoy ...

 int i = 0; string s = "123"; i =int.Parse(s); i = Convert.ToInt32(s); 
6
11 апр. Salim Latif Waigaonkar tərəfindən verilmiş cavab 11 Aprel. 2015-04-11 10:25 '15 at 10:25 2015-04-11 10:25

TryParse sənədlərində izah edildiyi kimi, TryParse () bir real sayının tapıldığını göstərən Boolean dəyərini qaytarır:

 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 } 
5
19 июня '09 в 23:10 2009-06-19 23:10 Cavab 19.06.2009 tarixində JeffH tərəfindən 23:10, 2009-06-19 23:10 tarixində verilir

int.Parse izah edən bir çox həll var olsa da, bütün cavablarda vacib bir şey var. Bir qayda olaraq, nümunəvi dəyərlərin simli nümayəndəlikləri mədəniyyətdə fərqlənir. Valyuta simvolları, qrup (və ya minlərlə) ayırıcılar və ondalık ayırıcılar kimi ədədi simlərin elementləri mədəniyyətə görə fərqlənir.

Bir bütün simvolu ayırmaq üçün etibarlı bir yol yaratmaq istəyirsinizsə, mədəni məlumatları nəzərə almaq vacibdir. Bunu etməsəniz, mövcud mədəniyyət parametrləri istifadə olunacaq. Fayl formatlarını ayırdığınız zaman bu, istifadəçiyə olduqca xoşagəlməz bir sürpriz vura bilər. Yalnız ingilis dilində təhlil etməlisinizsə, istifadə edilmək üçün mədəniyyət parametrlərini ifadə etməklə sadəcə bunu dəqiqləşdirmək daha xeyirlidir:

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

Daha ətraflı məlumat üçün Mədəniyyət İnfo , xüsusilə MSDN-də NumberFormatInfo- a baxın.

5
06 июля '15 в 14:33 2015-07-06 14:33 Cavab atlaste verilir 06 iyul '14 saat 14:33 'da

Öz uzatma metodunuzu yaza bilərsiniz.

 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(); } } 

Və hər yerdə kodu çağırır

 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 

Bu xüsusi vəziyyətdə

 int yourValue = TextBoxD1.Text.ParseInt(); 
4
05 февр. Cavab Miroslav Holec tərəfindən verilir 05 fevral. 2016-02-05 16:05 '16 16:05 'da 2016-02-05 16:05

Siz də istifadə edə bilərsiniz

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

və ya

 int i =int.Parse(TextBoxD1.Text); 
3
07 сент. Cavab verilib. 2015-09-07 12:42 '15 at 12:42 pm 2015-09-07 12:42

Int32 int üçün çevrilməsi int , Int32 , Int64 və .NET-də tamsayı məlumat növlərini əks etdirən digər məlumat növləri üçün yerinə yetirilə bilər

Bu dönüşümün nümunəsi aşağıdakılardır:

Bu məlumatın görünüş elementi (məlumat üçün) dəyər int ilə başlayır. Eyni şəkildə edilə bilər

 int xxiiqVal = Int32.Parse(strNabcd); 

Ex.

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

Bu demoyu görmək üçün keçid .

2
16 мая '16 в 9:01 2016-05-16 09:01 Cavab Edwin b 16 may, 16: 40-da 2016-05-16 09:01 tərəfindən verilir

Siz də uzadılma metodundan istifadə edə bilərsiniz, buna görə daha oxunacaqdır (hər kəs müntəzəm Parse funksiyalarına alışmış olsa da).

 public static class StringExtensions { /// <summary> /// Converts a string to int. /// </summary> /// <param name="value">The string to convert.</param> /// <returns>The converted integer.</returns> public static int ParseToInt32(this string value) { return int.Parse(value); } /// <summary> /// Checks whether the value is integer. /// </summary> /// <param name="value">The string to check.</param> /// <param name="result">The out int parameter.</param> /// <returns>true if the value is an integer; otherwise, false.</returns> public static bool TryParseToInt32(this string value, out int result) { return int.TryParse(value, out result); } } 

Və sonra onu deyə bilərsiniz:

  • Satırınızın bir tamsayı olduğuna əminsəniz, məsələn "50".

     int num = TextBoxD1.Text.ParseToInt32(); 
  • Əgər əmin deyilsinizsə və uğursuzluqların qarşısını almaq istəyirsinizsə.

     int num; if (TextBoxD1.Text.TryParseToInt32(out num)) { //The parse was successful, the num has the parsed value. } 

Daha dinamik hala gətirmək üçün onu sökmək, cütləşdirmək, üzmək və s. Üçün ümumi bir uzantı edə bilərsiniz.

2
25 окт. cavab 25 oktyabrda Mişa Zaslavski tərəfindən verilir . 2013-10-25 19:11 '13 at 19:11 2013-10-25 19:11
 //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; } 
2
03 янв. Cavab Jsprings Jan 03 tərəfindən verilir 2017-01-03 22:36 '17 saat 10:36 'da 2017-01-03 22:36
 int i = Convert.ToInt32(TextBoxD1.Text); 
1
29 мая '10 в 9:39 2010-05-29 09:39 Cavab dərinləşir 29 may '10 at 9:39 2010-05-29 09:39

Convert.ToInt32 () istifadə edərkən ehtiyatlı olun char! ASCII kodunu qaytaracaqsınız! Bir string içində yalnız müəyyən bir mövqeyi çıxarmaq lazımdır.

 String input = "123678"; int x = Convert.ToInt32(input[4]); // returns 55 int x = Convert.ToInt32(input[4].toString()); // returns 7 
1
03 февр. cavab Mong Zhu tərəfindən verilmişdir 03 fevral. 2016-02-03 19:42 '16 saat 07:42 'da 2016-02-03 19:42

Mən həmişə bunu etməliyəm

 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace example_string_to_int { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string a = textBox1.Text; // this turns the text in text box 1 into a string int b; if (!int.TryParse(a, out b)) { MessageBox.Show("this is not a number"); } else { textBox2.Text = a+" is a number" ; } // then this if statment says if the string not a number display an error elce now you will have an intager. } } } 

Burada bunu necə edirəm, kömək edirəm. (

1
20 апр. cavab İsaak Newton tərəfindən verilir 2016-04-20 18:42 '16 saat 06:42 'da 2016-04-20 18:42
 int x = Int32.TryParse(TextBoxD1.Text, out x)?x:0; 
1
28 янв. 28 yanvarda Məhəmməd Rəhmanın verdiyi cavabı 2017-01-28 00:40 '17 'də 0:40 2017-01-28 00:40' da

Bunu edərdim

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

Və ya istifadə edə bilərsiniz

 int xi=Int32.Parse(x); 

Daha ətraflı məlumat üçün Microsoft Developer Network ilə əlaqə saxlayın .

0
03 июля '17 в 9:27 2017-07-03 09:27 Cavab Tony Stark tərəfindən 03 iyul 17: 27- də 09:27 2017-07-03 09:27 tarixində verilir

TryParse və ya yerleşik funksiyalar olmadan aşağıda göstərildiyi kimi edə bilərsiniz.

 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 - 1)); } } return x ; } 
0
15 сент. Cavab geekydeveloper tərəfindən verilir. 2017-09-15 05:34 '17 də 5:34 'də 2017-09-15 05:34

METHOD 1

 int TheAnswer1 = 0; bool Success = Int32.TryParse("42", out TheAnswer1); if (!Success) { Console.WriteLine("String not Convertable to an Integer"); } 

METHOD 2

 int TheAnswer2 = 0; try { TheAnswer2 = Int32.Parse("42"); } catch { Console.WriteLine("String not Convertable to an Integer"); } 

METHOD 3

 int TheAnswer3 = 0; try { TheAnswer3 = Int32.Parse("42"); } catch (FormatException) { Console.WriteLine("String not in the correct format for an Integer"); } catch (ArgumentNullException) { Console.WriteLine("String is null"); } catch (OverflowException) { Console.WriteLine("String represents a number less than" + "MinValue or greater than MaxValue"); } 
0
18 окт. Bill Moore tərəfindən 18 oktyabrda cavab verildi 2017-10-18 15:46 '17 saat 15:46 'də 2017-10-18 15:46' da

Uzun bir yol axtarırsınızsa, yalnız metodunuzu yaradın:

 static int convertToInt(string a) { int x = 0; Char[] charArray = a.ToCharArray(); int j = charArray.Length; for (int i = 0; i < charArray.Length; i++) { j--; int s = (int)Math.Pow(10, j); x += ((int)Char.GetNumericValue(charArray[i]) * s); } return x; } 
0
05 июня '17 в 15:37 2017-06-05 15:37 Cavab şənbə günü 05.07 ' da 15:37 2017-06-05 15:37' də verilir

Bunu edə bilərsiniz, işləyəcək:

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

Değişken TextBoxD1.Text dize değeri Int32'e dönüştürülür ve x'de depolanır.

0
06 июля '15 в 14:17 2015-07-06 14:17 Cavab Kartikey Kushwaha tərəfindən verilir 06 iyul '14' də 14:17 2015-07-06 14:17

Sizə kömək edə bilərmi?

 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } float Stukprijs; float Aantal; private void label2_Click(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) { MessageBox.Show("In de eersre textbox staat een geldbedrag." + Environment.NewLine + "In de tweede textbox staat een aantal." + Environment.NewLine + "Bereken wat er moetworden betaald." + Environment.NewLine + "Je krijgt 15% korting over het bedrag BOVEN de 100." + Environment.NewLine + "Als de korting meer dan 10 euri is," + Environment.NewLine + "wordt de korting textbox lichtgroen"); } private void button1_Click(object sender, EventArgs e) { errorProvider1.Clear(); errorProvider2.Clear(); if (float.TryParse(textBox1.Text, out Stukprijs)) { if (float.TryParse(textBox2.Text, out Aantal)) { float Totaal = Stukprijs * Aantal; string Output = Totaal.ToString(); textBox3.Text = Output; if (Totaal >= 100) { float korting = Totaal - 100; float korting2 = korting / 100 * 15; string Output2 = korting2.ToString(); textBox4.Text = Output2; if (korting2 >= 10) { textBox4.BackColor = Color.LightGreen; } else { textBox4.BackColor = SystemColors.Control; } } else { textBox4.Text = "0"; textBox4.BackColor = SystemColors.Control; } } else { errorProvider2.SetError(textBox2, "Aantal plz!"); } } else { errorProvider1.SetError(textBox1, "Bedrag plz!"); if (float.TryParse(textBox2.Text, out Aantal)) { } else { errorProvider2.SetError(textBox2, "Aantal plz!"); } } } private void BTNwissel_Click(object sender, EventArgs e) { //LL, LU, LR, LD. Color c = LL.BackColor; LL.BackColor = LU.BackColor; LU.BackColor = LR.BackColor; LR.BackColor = LD.BackColor; LD.BackColor = c; } private void button3_Click(object sender, EventArgs e) { MessageBox.Show("zorg dat de kleuren linksom wisselen als je op de knop drukt."); } } } 
-3
27 окт. Jan koekepan tərəfindən verilmiş cavab 27 oktyabr 2016-10-27 14:10 '16 saat 14:10 'da 2016-10-27 14:10

Tags bağlı digər suallar və ya bir sual