2012-03-06 3 views
-1

私は実際に何が起こっているのか分かりません。それは初めて働いたときに2回目に失敗しようとしたとき最初のものが正しい理由はわかりませんが、2番目のものは失敗します。

私はすでに綴りをチェックして何も見つかりませんでした。私は

は、念のために私のコードは自明ではありません:)私は//commentでエラー行を指摘

助けを借りずに失われています、私は[1]セレクタ

を用いて第2の数字を取得したいです私のコードは次のとおりです。

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

エラーメッセージは何ですか? –

+0

ここで何が起こっているのですか?同じ値を文字列に変換するのはなぜですか?それは私の脳を傷つける! – musefan

+0

@musefan Parse内のtoStringは、 'charからstringへの変換ができない 'というエラーが出ていたためです。 (私もCシャープで初心者だから) – mithril333221

答えて

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

あなたは括弧を開くのを忘れていました。

+0

ああ私の神、そして私は綴りをチェックしたと思った – mithril333221

+0

+1良いスポット:-) –

+1

そのprobalyはコメントを挿入するのが入力ミスで、それ以外の場合はコンパイルされません。 –

1

限り数は(なし先頭にマイナス記号)正であるとして、あなたは最初の桁を取得することができます:

strNumero[0] - '0' 

二桁目:あなたがいずれかを呼び出す必要はありません

strNumero[1] - '0' 

1つの数字を変換するための派手な解析関数。

+0

興味深い、私はそのヒントを試してみる – mithril333221

0

とにかくstringが必要な場合は、実際にはcharは不要で、前後にキャストしてください。次に、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" 
関連する問題