私が理解していないのはその行です:
Class exmp
{
Static void Main(String userinput)
{
Int input = int.parse(userinput[0]);
}
}
どうやら引数を取る方法がないので、これが実行の理由かもしれません。
私が理解していないのはその行です:
Class exmp
{
Static void Main(String userinput)
{
Int input = int.parse(userinput[0]);
}
}
どうやら引数を取る方法がないので、これが実行の理由かもしれません。
userinput[0]
文字列の最初の文字です。したがって、空の文字列には最初の文字がないため、次のようになります。Index out of bounds
これを防ぐには、次のようにします。
Class exmp
{
Static void Main(String userinput)
{
Int input = 0;
if( userinput.length > 0 )
{
int.TryParse(userinput[0], out input);
}
}
}
これは、空の文字列が渡されたかのように設定input
します。0
したがって、入力の場合は文字列では'532632fergerg'
input
ない'5'
ため、入力の'fwehgwerhwh'
場合は爆発し'f'
ます。TryParse
その場合、おそらくの代わりに使用したいと思うでしょうParse
。
編集 TryParse を使用するように私のコードを更新しました。これは、特にユーザー入力が何であるかわからない場合に、より信頼性が高いためです。
追加
if (!String.IsNullOrEmpty(userinput))
int input = int.parse(userinput[0]);
これは、最初の文字を解析する場合です(コードに従って)
文字列全体を解析する場合は、次のように変更します
if (!String.IsNullOrEmpty(userinput))
int input = int.parse(userinput);
文字列を解析できない場合でも、これは can execption をスローします。Int32.TryParse()
代わりに使用することを検討してください。
int input;
if(Int32.TryParse(userinput, out input))
{
//Do Work
}