C#中String轉int問題


String轉int主要有四種方法

1. int.Parse()是一種類容轉換;表示將數字內容的字符串轉為int類型。  

  如果字符串為空,則拋出ArgumentNullException異常; 

  如果字符串內容不是數字,則拋出FormatException異常;  

  如果字符串內容所表示數字超出int類型可表示的范圍,則拋出OverflowException異常;

2. Convert.ToInt32()是一種類容轉換;但它不限於將字符串轉為int類型,還可以是其它類型的參數;Convert.ToInt32 與 int.Parse 較為類似,實際上 Convert.ToInt32 內部調用了 int.Parse。

3. int.TryParse (String s,out int num.)與 int.Parse(string s)又較為類似,但它不會產生異常,最后一個參數為輸出值,如果轉換失敗,輸出值為 0,如果轉換成功,輸出值為轉換后的int值。

4. (int) 屬 cast 轉換,當我們把int類型擴展到long,float,double,decimal類型,可以使用隱式轉換,但是當我們從long類型到int類型就需 要使用顯式轉換,否則會產生編譯錯誤。但我們只能將其它數字類型轉換成 int 類型,它不能轉換字符串,比如下例就會失敗:
  string v = "1";
  int n = (int)v;

 1 using System;  2 using System.Collections.Generic;  3 using System.Linq;  4 using System.Text;  5 using System.Threading.Tasks;  6 
 7 namespace ConsoleApplication7  8 {  9     class Program 10  { 11         static void Main(string[] args) 12  { 13             //String轉int 14             
15             //如果確定字符串中是可以轉成數字的字符,可以用int.Parse(string s), 16             //該語句返回的是轉換得到的int值;
17             string str1= "12"; 18             int num1 = 0; 19             num1 = int.Parse(str1); 20  Console.WriteLine(num1); 21 
22             //如果不能確定字符串是否可以轉成數字,可以用int.TryParse(string 23             // s, out int result),該語句返回的是bool值,指示轉換操作是否成功, 24             //參數result是存放轉換結果的變量。
25             string str2 = "14"; 26             int num2 = 0; 27             Console.WriteLine(int.TryParse(str2, out num2)); 28  Console.WriteLine(num2); 29 
30             //使用Convert.ToInt32(string s)進行轉換
31             string str3 = "12"; 32             int num3 = Convert.ToInt32(str3); 33  Console.WriteLine(num3); 34  } 35  } 36 } 37                    

 

當int.Parse()輸入值為abc:

當int.TryParse()和Convert.ToInt32()輸入值為abc:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM