自己实现string转int

作者: AngerCow | 来源:发表于2018-01-25 15:43 被阅读0次

    前段时间被人问到有没有了解过c#里一些内部方法的实现机制,虽然大概知道,但是没有去深入了解。又被问到怎么自己实现一个string转int。在这里给大家讲一下我的实现思路。
    首先我们要先把字符拆分成单个char类型,
    char[] chars = str.ToCharArray();
    然后我们再用数学计算得到最终结果。
    数字在字符中的索引与我们们实际数字位数是相反的,所以我们计算时先算最高位。
    int multiple = (int)Math.Pow(10, str.Length);
    再依次递减倍数,所以数的总和就是我们要求得的字符的int值。

     for (int i=0; i < chars.Length; i++)
                {
                    multiple /= 10;
                    endInt += (chars[i]-48) * multiple;//这里得到的结果是ASCII,所以按表要减48
                    Debug.Log("endInt:" + endInt);
                }
    

    看下我们的结果
    --------------


    image.png

    这个功能比较简单,工程就不上传了,最后给上我的代码。可以自己测试一下吧。
    虽然是很基础的东西,但是很多强大的技术都是由基础变化而来的。

     private string str = "123456789";
     int StringToInt(string str) {
            if (str == string.Empty || str == null)
            {
                return 0;
            }
            char[] chars = str.ToCharArray();
            int endInt = 0;
            if (str.Length > 1) 
            {
                int multiple = (int)Math.Pow(10, str.Length);
                for (int i=0; i < chars.Length; i++)
                {
                    multiple /= 10;
                    endInt += (chars[i]-48) * multiple;//这里得到的结果是ASCII,所以按表要减48
                    Debug.Log("endInt:" + endInt);
                }
            }
            return endInt;
        }
    

    相关文章

      网友评论

        本文标题:自己实现string转int

        本文链接:https://www.haomeiwen.com/subject/dspvaxtx.html