四种方法把string[]转换为int[]

简介:

  最近看到一个题目,要把一个string[]转换为int[](当然,string[]中存的都是数字),然后写了个小程序玩儿了一下,目前用了四种方法,但方法的优劣不是那么明显:

 

         static   void  Main( string [] args)
        {
            
// 测试字符串
            StringBuilder test;
            
string [] str;
            
for  ( int  j  =   0 ; j  <   6 ; j ++ )
            {
                test 
=   new  StringBuilder();
                
for  ( int  i  =   1 ; i  <=  ( int )Math.Pow( 10 ,j + 1 ); i ++ )
                {
                    test.Append(i 
+   " , " );
                }
                test.Append(
" 1 " );
                Console.WriteLine(
" 元素个数为 " + ( int )Math.Pow( 10 , j  +   1 ) + " : " );

                str 
=  test.ToString().Split( ' , ' );
                StringToInt(str);
                StringToIntByLinq(str);
                StringToIntByArr(str);
                StringToIntByList(str);
                Console.WriteLine();
            }

            Console.Read();
        }

        
// 最简单的,用循环
         public   static   void  StringToInt( string [] str)
        {
            
long  t1  =  DateTime.Now.Ticks;
            
int [] intArr  =   new   int [str.Length];
            
for  ( int  i  =   0 ; i  <  str.Length;i ++  )
            {
                intArr[i] 
= Convert.ToInt32(str[i]);
            }
            Console.WriteLine(
" Loop Cost Time: "   +  (DateTime.Now.Ticks  -  t1));
        }

        
// 用Linq
         public   static   void  StringToIntByLinq( string [] str)
        {
            
long  t1  =  DateTime.Now.Ticks;
            
int [] intArr  =  str.Select(o  =>  Convert.ToInt32(o)).ToArray < int > ();
            Console.WriteLine(
" Linq Cost Time: "   +  (DateTime.Now.Ticks  -  t1));
        }

        
// 用.NET中的数组转换方法
         public   static   void  StringToIntByArr( string [] str)
        {
            
long  t1  =  DateTime.Now.Ticks;
            
int [] intArr  =  Array.ConvertAll < string int > (str, Convert.ToInt32);
            Console.WriteLine(
" Arr  Cost Time: "   +  (DateTime.Now.Ticks  -  t1));
        }

        
// 用泛型
         public   static   void  StringToIntByList( string [] str)
        {
            
long  t1  =  DateTime.Now.Ticks;
            
int [] intList  =  str.ToList < string > ().ConvertAll < int > (Convert.ToInt32).ToArray < int > ();
            Console.WriteLine(
" List Cost Time: "   +  (DateTime.Now.Ticks  -  t1));
        }

 

运行后效果为:

元素个数为10:
Loop Cost Time:0
Linq Cost Time:0
Arr  Cost Time:0
List Cost Time:0

元素个数为100:
Loop Cost Time:0
Linq Cost Time:0
Arr  Cost Time:0
List Cost Time:0

元素个数为1000:
Loop Cost Time:0
Linq Cost Time:0
Arr  Cost Time:0
List Cost Time:0

元素个数为10000:
Loop Cost Time:0
Linq Cost Time:156000
Arr  Cost Time:0
List Cost Time:0

元素个数为100000:
Loop Cost Time:468001
Linq Cost Time:468001
Arr  Cost Time:468001
List Cost Time:312000

元素个数为1000000:
Loop Cost Time:2496004
Linq Cost Time:2808005
Arr  Cost Time:2184004
List Cost Time:2340004

       大家如果有什么好的方法,也让我学习学习哦!



本文转自Artwl博客园博客,原文链接:http://www.cnblogs.com/artwl/,如需转载请自行联系原作者

相关文章
|
3月前
for循环和String类下方法的一个练习题
for循环和String类下方法的一个练习题
54 1
|
1月前
|
Java
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
56 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
|
1月前
|
机器学习/深度学习 算法
让星星⭐月亮告诉你,HashMap之tableSizeFor(int cap)方法原理详解(分2的n次幂和非2的n次幂两种情况讨论)
`HashMap` 的 `tableSizeFor(int cap)` 方法用于计算一个大于或等于给定容量 `cap` 的最小的 2 的幂次方值。该方法通过一系列的无符号右移和按位或运算,逐步将二进制数的高位全部置为 1,最后加 1 得到所需的 2 的幂次方值。具体步骤包括: 1. 将 `cap` 减 1,确保已经是 2 的幂次方的值直接返回。 2. 通过多次无符号右移和按位或运算,将最高位 1 后面的所有位都置为 1。 3. 最终加 1,确保返回值为 2 的幂次方。 该方法保证了 `HashMap` 的数组容量始终是 2 的幂次方,从而优化了哈希表的性能。
33 1
|
17天前
|
JavaScript 前端开发 开发者
|
2月前
|
JavaScript 前端开发 API
javaScript中常用的String方法以及注意点总结
本文总结了JavaScript中常用的String对象的方法及其注意事项,包括大小写转换、字符获取、子字符串截取、字符串拼接、去除空格、替换、分割以及查找字符串中字符的索引等操作。提供了每种方法的使用示例代码,帮助理解它们的具体用法和差异。
38 2
|
3月前
|
JavaScript 算法 前端开发
JS算法必备之String常用操作方法
这篇文章详细介绍了JavaScript中字符串的基本操作,包括创建字符串、访问特定字符、字符串的拼接、位置查找、大小写转换、模式匹配、以及字符串的迭代和格式化等方法。
JS算法必备之String常用操作方法
|
3月前
|
XML Java API
List与String相互转化方法汇总
本文汇总了List与String相互转化的多种方法,包括使用`String.join()`、`StringBuilder`、Java 8的Stream API、Apache Commons Lang3的`StringUtils.join()`以及Guava的`Joiner.on()`方法实现List转String;同时介绍了使用`split()`方法、正则表达式、Apache Commons Lang3的`StringUtils.split()`及Guava的`Splitter.on()`方法实现String转List。
103 1
List与String相互转化方法汇总
|
3月前
|
Java API 索引
【Java基础面试二十四】、String类有哪些方法?
这篇文章列举了Java中String类的常用方法,如`charAt()`、`substring()`、`split()`、`trim()`、`indexOf()`、`lastIndexOf()`、`startsWith()`、`endsWith()`、`toUpperCase()`、`toLowerCase()`、`replaceFirst()`和`replaceAll()`,并建议面试时展示对这些方法的熟悉度,同时深入理解部分方法的源码实现。
【Java基础面试二十四】、String类有哪些方法?
|
2月前
|
Java 索引
java基础扫盲-String类常用的方法
java基础扫盲-String类常用的方法
|
3月前
|
Java 索引
Java系列之 String indexOf() 方法
文章详细介绍了Java中`String`类的`indexOf()`方法的四种不同形式及其用法,包括查找字符和子字符串在字符串中的索引,并提供了相应的实例代码和输出结果。

热门文章

最新文章