型変換?
Posted: 2007年11月26日(月) 00:12
はじめまして。-U-と申します。
1,5,3,
という風に、カンマで区切られた文字を読み込んで、String::Splitを用いていったん配列に格納し、
次にIntに型変換し直して別の配列に格納したいのですが、上手く行きません。
どなたか宜しければ助けていただきたいです。
tempstr: String::Splitでいったん格納させるString配列
rstr: 文字列として「1,5,3,」が入っているString
lastint: 最後に数値として格納するint配列
tempstr = rstr->Split(delimiter);
IEnumerator* Enum = tempstr->GetEnumerator();
int j = 0;
while (Enum->MoveNext()) {
String* s = __try_cast<String*>(Enum->Current);
Debug::WriteLine(s);
lastint[j] = Convert::ToInt16(s);
j++;
}
コンパイルは通りますが、実行すると
System.FormatException: 入力文字列の形式が正しくありません。
というエラーが出てしまいます。
lastint[j] = Convert::ToInt16(s);の部分で引っかかっているようですが、原因が分かりません。
マニュアルも調べてみたのですが、Stringをintにすることは出来るようでした。
なぜintに変換できないのでしょうか?
宜しくお願いします。
1,5,3,
という風に、カンマで区切られた文字を読み込んで、String::Splitを用いていったん配列に格納し、
次にIntに型変換し直して別の配列に格納したいのですが、上手く行きません。
どなたか宜しければ助けていただきたいです。
tempstr: String::Splitでいったん格納させるString配列
rstr: 文字列として「1,5,3,」が入っているString
lastint: 最後に数値として格納するint配列
tempstr = rstr->Split(delimiter);
IEnumerator* Enum = tempstr->GetEnumerator();
int j = 0;
while (Enum->MoveNext()) {
String* s = __try_cast<String*>(Enum->Current);
Debug::WriteLine(s);
lastint[j] = Convert::ToInt16(s);
j++;
}
コンパイルは通りますが、実行すると
System.FormatException: 入力文字列の形式が正しくありません。
というエラーが出てしまいます。
lastint[j] = Convert::ToInt16(s);の部分で引っかかっているようですが、原因が分かりません。
マニュアルも調べてみたのですが、Stringをintにすることは出来るようでした。
なぜintに変換できないのでしょうか?
宜しくお願いします。