zoukankan      html  css  js  c++  java
  • 字符串非空判断的效率问题

       static void TestString()
            {
                string[] allstring = File.ReadAllLines(Path.Combine(AppContext.BaseDirectory, "text.txt"));
                int i=0,j = 0;
                Stopwatch sw = new Stopwatch();
                sw.Start();
                foreach (var item in allstring)
                {
                    if (!string.IsNullOrWhiteSpace(item))
                    {
                        i++;
                    }
                    else
                    {
                        j++;
                    }
                }
                sw.Stop();
                Console.WriteLine($"IsNullOrWhiteSpace方法  总共{allstring.Length}数据,非空 {i++} 条,空 {j},耗时:{sw.ElapsedMilliseconds}");
            }
            static void TestString2()
            {
                string[] allstring = File.ReadAllLines(Path.Combine(AppContext.BaseDirectory, "text.txt"));
                int i = 0, j = 0;
                Stopwatch sw = new Stopwatch();
                sw.Start();
                foreach (var item in allstring)
                {
                    if (!string.IsNullOrEmpty(item))
                    {
                        i++;
                    }
                    else
                    {
                        j++;
                    }
                }
                sw.Stop();
                Console.WriteLine($"IsNullOrEmpty方法  总共{allstring.Length}数据,非空 {i++} 条,空 {j},耗时:{sw.ElapsedMilliseconds}");
            }
    
            static void TestString1()
            {
                string[] allstring = File.ReadAllLines(Path.Combine(AppContext.BaseDirectory, "text.txt"));
                int i = 0, j = 0;
                Stopwatch sw = new Stopwatch();
                sw.Start();
                foreach (var item in allstring)
                {
                    if (item!=null&&item.Length>0)
                    {
                        i++;
                    }
                    else
                    {
                        j++;
                    }
                }
                sw.Stop();
                Console.WriteLine($"==null length>0 方法  总共{allstring.Length}数据,非空 {i} 条,空 {j},耗时:{sw.ElapsedMilliseconds}");
            }
    

      本文主要测试三种判断字符串非空的方法。

    1.IsNullOrWhiteSpace  是否为null或空格字符。

    2.用==null && Length>0判断字符串是否为空。

    3.IsNullOrEmpty 判断字符是否为null或Empty。

    数据量

    100条内。

     万条内

     一万条

     10万条

     100万条

     500万条 带空格字符

     500万条 不带空格字符

     1500万条 带有空格字符。

    结论:

    1.数量少的时候你不需要纠结。三个哪个顺手就用哪个。

    2.数据量大的时候很明显 IsNullOrEmpty 是比较优秀的。

    3.如果要排除空格字符的话 还是要用 IsNullOrWhiteSpace。

  • 相关阅读:
    shell学习三十八天----运行顺序和eval
    开发新手教程【三】Arduino开发工具
    【Cloud Foundry】Cloud Foundry学习(四)——Service
    java调用oracle函数
    JDK动态代理
    Nginx 笔记与总结(8)Location:归纳总结
    机器学习从入门到放弃之决策树算法
    用数据分析进行品类管理
    用数据分析进行品类管理
    大数据分析过程中经常遇到那13个问题
  • 原文地址:https://www.cnblogs.com/lecone/p/12516424.html
Copyright © 2011-2022 走看看