面试中比较有意思的小题目
(1)不借助于C#自带的字符串转数值方法,把字符串转成对应的数值,比如“123” 转为123;“452.023” 转为452.023
方法如下:
public static double StrToNumber(string oldStr) { string[] groupParts = oldStr.Split('.'); char[] integerPart = groupParts[0].ToCharArray(); double result = 0; //整数部分 for (int i = 0; i < integerPart.Length; i++) { char singleChar = integerPart[i]; int asciiCode = (int)singleChar - 48; result += Math.Pow(10, integerPart.Length - i - 1) * asciiCode; } //小数部分 if (groupParts.Length == 2) { char[] decimalPart = groupParts[1].ToCharArray(); for (int i = 0; i < decimalPart.Length; i++) { char singleChar = decimalPart[i]; int asciiCode = (int)singleChar - 48; result += Math.Pow(10, -1 - i) * asciiCode; } } return result; }
(2)给出一个数组,打乱数组内部的元素顺序,比如{ 1, 3, 2, 6, 5, 7, 8, 9, 10, 0 } 变为 {10,7,6,1,9,5,3,2,0,8}
public static void RandomStrArray(string[] strArray) { Random random = new Random(); for (int i = 0; i < strArray.Length - 1; i++) { int randomNumber = random.Next(i + 1, strArray.Length - 1); string temp = strArray[randomNumber]; strArray[randomNumber] = strArray[i]; strArray[i] = temp; } }
作者:tuohaibei
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利.
如果您觉得文章对您有帮助,可以点击文章右下角"推荐".您的鼓励是作者坚持原创和持续写作的最大动力!