vb.net的长度不能为零
在我收到错误消息之前,Hi是用来检测字节长度的: 长度不能小于零。参数名称:长度 我在这一行得到了错误: 新用户名=新用户名.Substring(0,新用户名.IndexOf(“已加入”)) 我正在从我得到的字符串中删除“joined”…如果数据不是“joined”,我怎么能忽略它呢 谢谢试试这个:vb.net的长度不能为零,vb.net,Vb.net,在我收到错误消息之前,Hi是用来检测字节长度的: 长度不能小于零。参数名称:长度 我在这一行得到了错误: 新用户名=新用户名.Substring(0,新用户名.IndexOf(“已加入”)) 我正在从我得到的字符串中删除“joined”…如果数据不是“joined”,我怎么能忽略它呢 谢谢试试这个: new_username = new_Username.Replace(" Joined ", "") 请注意,这将删除所有出现的“Joined”子字符串,而不仅仅是第一个子字符串。看起来像是新的
new_username = new_Username.Replace(" Joined ", "")
请注意,这将删除所有出现的“
Joined
”子字符串,而不仅仅是第一个子字符串。看起来像是新的\u用户名。IndexOf(“Joined”)
返回-1,表示子字符串未找到“Joined”字符串。我将把这分成两种说法:
您看到的错误是您正在有效地进行此呼叫:
new_username = new_username.Substring(0, -1)
在此上下文中使用IndexOf之前,我将测试它返回的内容:
if(new_username.IndexOf(" Joined") > 0)
{
new_username = new_username.Substring(0, new_username.IndexOf(" Joined "))
}
如果初始字符串只有用户名和可选字符串“joined”,而没有其他内容,那么这将非常有效!还假设没有人将“加入”作为用户名的一部分:/@Michael:.IndexOf()基于的代码在这种情况下也会失败。这是低效的,因为您调用了IndexOf两次。最好调用一次并缓存它以便在两个位置使用。在进行优化之前,可能值得检查MSIL-我认为编译器可以在没有副作用的情况下优化第二次调用。@ctake请原谅我的无知,但你会怎么做?创建一个新变量?