什么,我不明白的是,线:指数外边界例外控制台应用程序的
Class exmp
{
Static void Main(String userinput)
{
Int input = int.parse(userinput[0]);
}
}
有apparantely都没法带任何参数,所以这可能是execption 我是新手的原因,帮助
什么,我不明白的是,线:指数外边界例外控制台应用程序的
Class exmp
{
Static void Main(String userinput)
{
Int input = int.parse(userinput[0]);
}
}
有apparantely都没法带任何参数,所以这可能是execption 我是新手的原因,帮助
添加
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
}
第一个例子是你只想解析第一个字符。 –
谢谢你,你正在更正,更新 –
但问题是,我在接受任何输入之前抛出错误,它甚至在运行时需要输入吗? –
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,因为这是非常可靠的,尤其是你不知道什么是用户输入的工作时。
我会随时使用TryParse()通过Parse()随时保持代码尽可能的稳定。 – scheien
@scheien - 同意。现在让我的例子更加可靠。 –
但问题是,我在进行任何输入之前会抛出错误,它甚至在运行时需要输入吗? –
您需要使用'Int input = int.parse(userinput)',userinput不是数组 – Satpal
在C#中,'String'可以作为char数组访问。 – germi
的确如此。 '字符串'实现'IEnumerable' –