更高效的补齐字符串的方法

本文对比了两种字符串补全的方法:使用内置的 string.PadRight() 函数与自定义静态方法 PadRight() 的效率。通过运行100万次循环进行性能测试,结果显示自定义方法在该场景下更为高效。
摘要由CSDN通过智能技术生成

方法1:

使用string.PadRight()

方法2:

自定义一个字符串补齐的静态方法:

    public static string PadRight(string src, char c, Int32 totalLength)
        {
            if (totalLength < src.Length)
                return src;
            return src + new String(c, totalLength - src.Length);
        }

 

使用第二种方法效率更高。

测试结果代码如下:

using System;
using System.Collections.Generic;
using System.Diagnostics;
public class MyClass
{
	public static void RunSnippet()
	{
       Stopwatch s1=new Stopwatch();
	  
		string s="1",s2="";
		int recurring=1000000;
		int recurringChar=20;


		s1.Start();
	   for(int i=1;i<recurring;i++){
		  s2=PadRight(s,'0',recurringChar);
	   }
	   s1.Stop();	   
	   WL("静态方法:PadRight耗时:{0}",s1.ElapsedMilliseconds.ToString());
	   s1.Reset();
	       s="";
	   s2="";
		   s1.Start();
	   for(int i=1;i<recurring;i++){
		  s2=s.PadRight(recurringChar,'0');
	   }
		   s1.Stop();
	WL("string.PadRight()耗时:{0}",s1.ElapsedMilliseconds.ToString());
	  s1.Reset();
	
	   
	}
	
	public static string PadRight(string src, char c, Int32 totalLength)
        {
            if (totalLength < src.Length)
                return src;
            return src + new String(c, totalLength - src.Length);
            
        }
	#region Helper methods
	
	public static void Main()
	{
		try
		{
			RunSnippet();
		}
		catch (Exception e)
		{
			string error = string.Format("---\nThe following error occurred while executing the snippet:\n{0}\n---", e.ToString());
			Console.WriteLine(error);
		}
		finally
		{
			Console.Write("Press any key to continue...");
			Console.ReadKey();
		}
	}

	private static void WL(object text, params object[] args)
	{
		Console.WriteLine(text.ToString(), args);	
	}

	#endregion
}

转载于:https://www.cnblogs.com/lugreen/archive/2010/01/24/1655282.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值