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。

  • 相关阅读:
    高精度乘法
    使用BFG清除git仓库中的隐私文件或大文件
    java运行的问题
    eclipse编写的java程序在dos环境下运行的写法
    win32汇编实现阶乘和斐波那契数列
    十个数字不同,实现加减乘。暴力枚举法
    实现一个类模板
    循环队列类模板和函数模板c++实例
    C++析构函数为什么要为虚函数
    1012-Joseph 约瑟夫问题
  • 原文地址:https://www.cnblogs.com/lecone/p/12516424.html
Copyright © 2011-2022 走看看