什麼,我不明白的是,線:指數外邊界例外控制檯應用程序的
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' –