Bagaimana saya bisa mengubah String ke Int?

Saya memiliki TextBoxD1.Teks dan saya ingin mengubahnya menjadi sebuah int untuk menyimpannya dalam database.

Bagaimana saya bisa melakukan ini?

Larutan

Coba ini:

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

atau lebih baik lagi:

int x = 0;

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

Juga, karena Int32.TryParse kembali bool anda dapat menggunakan kembali nilai untuk membuat keputusan tentang hasil parsing upaya:

int x = 0;

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

Jika anda penasaran, perbedaan antara Mengurai dan TryParse adalah yang terbaik menyimpulkan seperti ini:

TryParse lebih suka Mengurai metode, kecuali TryParse tidak membuang pengecualian jika konversi gagal. Menghilangkan perlu menggunakan exception handling untuk menguji untuk FormatException di acara bahwa s adalah tidak valid dan tidak dapat berhasil diurai. - BACA

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

Gunakan ini jika anda merasa yakin bahwa isi dari kotak teks yang valid int. Pilihan yang lebih aman adalah

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

Ini akan memberikan anda dengan beberapa nilai default yang dapat anda gunakan. Int32.TryParse juga mengembalikan nilai boolean yang menunjukkan apakah itu mampu mengurai atau tidak, sehingga anda bahkan dapat menggunakannya sebagai kondisi jika pernyataan.

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

Itu tidak't melemparkan jika teks tidak numerik.

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

Cara lain akan sama:

bool isConvertible = false;
int myInt = 0;

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

Perbedaan antara keduanya adalah bahwa yang pertama akan melempar pengecualian jika nilai di textbox dapat't akan dikonversi, sedangkan yang kedua hanya akan mengembalikan false.

Komentar (1)

Anda perlu untuk mengurai string, dan anda juga perlu untuk memastikan bahwa itu benar-benar dalam format integer.

Cara termudah adalah ini:

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
}
Komentar (0)

Hati-hati ketika menggunakan Convert.ToInt32() pada char!
Itu akan kembali UTF-16 Kode dari karakter!

Jika anda mengakses string hanya di posisi tertentu menggunakan [i] pengindeksan operator ini akan mengembalikan char dan bukan string!

String input = "123678";

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

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

Menikmatinya...

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

Yang TryParse kembali pernyataan boolean yang merepresentasikan apakah mengurai telah berhasil atau tidak. Jika itu berhasil, diurai nilai disimpan ke dalam parameter kedua.

Melihat Int32.TryParse (String, Int32) untuk informasi yang lebih rinci.

Komentar (0)

Sementara sudah ada banyak solusi berikut yang menggambarkan int.Mengurai, ada's sesuatu yang penting yang hilang dalam semua jawaban. Biasanya, string representasi dari nilai-nilai numerik berbeda dengan budaya. Elemen-elemen dari string numerik seperti simbol mata uang, kelompok (atau ribuan) pemisah, dan pemisah desimal semua bervariasi berdasarkan budaya.

Jika anda ingin membuat cara yang kuat untuk mengurai string ke integer, it's oleh karena itu penting untuk mengambil informasi budaya ke rekening. Jika anda don't, [budaya saat ini pengaturan][1] akan digunakan. Yang mungkin memberikan pengguna cukup kaget-atau bahkan lebih buruk, jika anda're parsing format file. Jika anda hanya ingin inggris parsing, it's terbaik untuk hanya membuat lebih eksplisit, dengan menentukan pengaturan budaya untuk menggunakan:

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

Untuk informasi lebih lanjut, baca di CultureInfo, khususnya [NumberFormatInfo][2] di 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

Komentar (0)

Anda dapat menulis sendiri metode ekstensinya

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

Dan di mana pun di kode panggil saja

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

Dalam kasus konkret

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

Seperti yang dijelaskan dalam TryParse dokumentasi, TryParse() mengembalikan nilai boolean yang menunjukkan bahwa yang sah jumlah ditemukan:

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
}
Komentar (0)

Anda dapat menggunakan baik,

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

atau

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

Konversi dari string untuk int dapat dilakukan untuk: int, Int32, Int64 dan jenis data lainnya yang mencerminkan integer tipe data dalam .NET

Contoh di bawah ini menunjukkan konversi ini:

Ini menunjukkan (info) data adapter elemen diinisialisasi ke int nilai. Hal yang sama dapat dilakukan secara langsung seperti,

int xxiiqVal = Int32.Parse(strNabcd);

Ex.

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

[Link untuk melihat demo ini][1].

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

Ini akan melakukan

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

Atau anda dapat menggunakan

int xi=Int32.Parse(x);

Merujuk Microsoft Developer Network untuk informasi lebih lanjut

Komentar (0)

Anda dapat mengkonversi string ke int C# menggunakan:

Fungsi dari convert kelas yaitu Mengkonversi.ToInt16(), Mengkonversi.ToInt32(), Mengkonversi.ToInt64() atau dengan menggunakan Mengurai dan TryParse Fungsi. Contoh yang diberikan di sini.

Komentar (0)

Anda juga dapat menggunakan [metode penyuluhan][1], sehingga akan lebih mudah dibaca (meskipun semua orang sudah digunakan untuk reguler Mengurai fungsi).


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

yang dapat anda lakukan seperti di bawah ini tanpa TryParse atau fungsi built-in

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

Anda dapat mengkonversi string ke integer dengan nilai bantuan mengurai metode.

Misalnya:

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