byte[] ASCIIValues = EnCoding.ASCII.GetBytes(myinput); while (I < ASCIIValues.Length){ { if ((ASCIIValues[I] > 65 & ASCIIValues[I] < 90) || (ASCIIValues[I] > 97 & ASCIIValues[I] < 122)) { } ASCIIValues[I] = 32; } Console.Writeline(ASCIIValues[I]); I++;}
这就是我现在所拥有的,我正在努力确保用户输入的字符串(我的输入)仅在一个字母的范围内.我试图删除所有标点符号和特殊字符以及数字.我等于0并用于迭代数组.将所有不需要的字符更改为空格是因为在我的代码中我正在删除空格.
运行代码时,每个返回的ASCII值为32.这没有意义,因为字母应返回相应的ASCII值.
解决方法 (正如L.B所说,有更简单的方法可以做到这一点 – 但是值得研究为什么你当前的代码也不起作用.)When running the code every returned ASCII value is 32
是的,它会的.仔细看看你的循环:
while (I < ASCIIValues.Length){ { if ((ASCIIValues[I] > 65 & ASCIIValues[I] < 90) || (ASCIIValues[I] > 97 & ASCIIValues[I] < 122)) { } ASCIIValues[I] = 32; } Console.Writeline(ASCIIValues[I]); I++;}
你在if块中什么也没做,相反,你无条件地将ASCIIValues [I]设置为32.
另外:
>我使用for循环而不是while循环.>你真的不需要在这里将字符转换为字节;无论如何,每个ASCII字符都具有相同的Unicode值.>使用字符文字(‘A’等)指定字符将使代码更易于阅读>您应该采用.NET命名约定来使您的代码更加惯用>你应该使用&&而不是&这里
总结以上是内存溢出为你收集整理的c# – 检查ASCII是否在两个范围内全部内容,希望文章能够帮你解决c# – 检查ASCII是否在两个范围内所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)