我不明白的是那行:
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
}