2012-03-06 66 views
-1

我真的不知道發生了什麼。它第一次工作,然後當我嘗試第二次失敗時我不明白爲什麼第一個是正確的,但第二個失敗

我已經檢查拼寫,什麼也沒找到。我很失落沒有幫助

我指出了一個//comment錯誤行:)

萬一我的代碼是不言自明的,我想用[1]選擇

獲得第二位我的代碼是:

static void Main(string[] args) 
    { 
     españolizar("55","44"); 
    } 
    static void españolizar(string str, string str2) 
    { 
     string[] list1={"cero","un","dos","tres","cuatro","cinco","seis","siete","ocho","nueve","diez","once","doce","trece","catorce","quince"}; 
     string[] list2={"nivelarindexes","dieci","veinti","trei","cuare","cincue","sese","sete","oche","nove"}; 

     int numero = int.Parse(str); 
     string strNumero = Convert.ToString(numero); 


     int primerDigito = int.Parse(Convert.ToString(strNumero[0])); 
     int segundoDigito = 0; 

     if (strNumero.Length > 1) 
      //this is the one that fails 
      segundoDigito = int.Parse(Convert.ToString(strNumero[1])); 
      //\-------------------------/ 
     } 

     Console.WriteLine(strNumero); 
     Console.ReadLine(); 
    } 
+1

你得到的錯誤信息是什麼? – 2012-03-06 15:52:56

+0

這是怎麼回事?!?你爲什麼要將相同的值轉換成字符串和從字符串轉換得這麼多?它傷害了我的大腦! – musefan 2012-03-06 15:53:16

+0

@musefan Parse裏面的toStrings是因爲我得到一個錯誤,說'不能從字符轉換爲字符串'或類似的東西。 (也因爲我是C新手新手) – mithril333221 2012-03-06 15:54:25

回答

4
if (strNumero.Length > 1) 
{ //ADD THIS!!!! 
    segundoDigito = int.Parse(Convert.ToString(strNumero[1])); 
} 

你忘了開括號。

+0

哦,我的上帝,我以爲我檢查拼寫 – mithril333221 2012-03-06 15:55:08

+0

+1好點:-) – 2012-03-06 15:57:20

+1

這probaly是插入評論的錯字,否則不會編譯。 – 2012-03-06 15:57:41

1

只要數爲正數(沒有前導減號),即可獲得第一個數字:

strNumero[0] - '0' 

二位:

strNumero[1] - '0' 

你不需要調用任何花哨的解析函數來轉換一個數字。

+0

有趣,我會嘗試一下 – mithril333221 2012-03-06 15:58:24

0

實際上你不需要char,並且無論如何你都需要string來回投。那麼你也可以使用String.Substringint.TryParse

String str = "56"; 
int firstDigit = 0; 
int secondDigit = 0; 
int.TryParse(str.Substring(0, 1), out firstDigit); 
int.TryParse(str.Substring(1, 1), out secondDigit); 
Console.WriteLine(String.Format("first digit:{0} second digit:{1}",firstDigit,secondDigit)); 
//result=> "first digit:5 second digit:6" 
相關問題