[英]Substring not refers to the given String exception in C#
我正在用C#编写简单程序,只是为了好玩,我在将简单的HEX编码为String -translation方法,如下所示:
private String translate(String hex)
{
StringBuilder output = new StringBuilder();
int i = 0;
while (i+2 <= hex.Length)
{
String str = hex.Substring(i, i + 2);
output.Append((char)Convert.ToInt32(str, 16));
i += 2;
}
每次我运行应用程序时,都会收到未处理的异常“超出范围和界限”,并收到消息,该Substring方法参数的索引和指向必须引用十六进制-String的某个点。 仅当i +2小于或等于hex.Length时,才在条件为true的情况下在子字符串-method行之前执行if -statement,但这不能正常工作。 当我仅使用一个字节的十六进制输入字符串(表示一个ASCII字符)时,我的应用程序正常运行。 有人可以帮助我完成我的项目吗?
采用:
hex.Substring(i, 2)
Substring中的第二个参数是length
,而不是end
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.