我不明白的是那条线:
Class exmp
{
Static void Main(String userinput)
{
Int input = int.parse(userinput[0]);
}
}
显然没有方法可以采取争论,所以这可能是解释的原因 我是新手,帮助
答案 0 :(得分:3)
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,因为它更可靠,特别是在处理用户输入时你不知道是什么。
答案 1 :(得分:1)
添加
if (!String.IsNullOrEmpty(userinput))
int input = int.parse(userinput[0]);
这是你要解析第一个字符(根据你的代码)
如果您希望解析整个字符串,请将其更改为
if (!String.IsNullOrEmpty(userinput))
int input = int.parse(userinput);
如果无法解析字符串,这仍然可以执行execption。请转而使用Int32.TryParse()
。
int input;
if(Int32.TryParse(userinput, out input))
{
//Do Work
}