C# 中关于补位的写法 PadLeft,PadRight 函数

简介: C# 中的 `PadLeft` 和 `PadRight` 是 String 类提供的用于字符串补位的实用方法。`PadLeft` 在字符串左侧填充指定字符,使其达到指定长度;`PadRight` 则在右侧填充。两者通过检查原字符串长度,计算需填充字符数,并创建新字符数组完成操作。时间复杂度为 O(n),适用于简单补位场景,但在大量操作时需注意性能影响。示例代码展示了如何使用这两个方法进行补位操作。

在 C# 里,PadLeft 和 PadRight 是 String 类提供的两个非常实用的方法,它们主要用于对字符串进行补位操作。下面详细介绍这两个方法的原理和使用。

  1. PadLeft 方法
    功能概述
    PadLeft 方法用于在字符串的左侧填充指定的字符,直到字符串达到指定的长度。
public string PadLeft(int totalWidth, char paddingChar);

原理分析
PadLeft 方法的实现原理大致如下:
首先,检查原字符串的长度是否已经达到或超过 totalWidth。如果是,则直接返回原字符串,不进行任何填充操作。
如果原字符串的长度小于 totalWidth,计算需要填充的字符数量,即 totalWidth - 原字符串长度。
创建一个新的字符数组,长度为 totalWidth。
将填充字符依次填充到新字符数组的左侧,填充数量为步骤 2 中计算得到的值。
将原字符串复制到新字符数组的右侧剩余位置。
将新字符数组转换为字符串并返回。

using System;

class Program
{
    static void Main()
    {
        string original = "123";
        string padded = original.PadLeft(5, '0');
        Console.WriteLine(padded); // 输出: 00123
    }
}

2 . PadRight 方法
功能概述
PadRight 方法用于在字符串的右侧填充指定的字符,直到字符串达到指定的长度。

public string PadRight(int totalWidth, char paddingChar);

原理分析
PadRight 方法的实现原理与 PadLeft 类似:
检查原字符串的长度是否已经达到或超过 totalWidth。如果是,则直接返回原字符串。
如果原字符串的长度小于 totalWidth,计算需要填充的字符数量,即 totalWidth - 原字符串长度。
创建一个新的字符数组,长度为 totalWidth。
将原字符串复制到新字符数组的左侧。
将填充字符依次填充到新字符数组的右侧,填充数量为步骤 2 中计算得到的值。
将新字符数组转换为字符串并返回。

代码如下:

using System;

class Program
{
    static void Main()
    {
        string original = "123";
        string padded = original.PadRight(5, '0');
        Console.WriteLine(padded); // 输出: 12300
    }
}

3 . 性能考虑
这两个方法的时间复杂度主要取决于需要填充的字符数量。由于需要创建一个新的字符数组并进行字符复制操作,所以时间复杂度为 (O(n)),其中 (n) 是最终字符串的长度。在处理大量字符串补位操作时,可能会对性能产生一定影响。

相关文章
|
JavaScript 前端开发 Java
javascript实现像java、c#之类的sleep暂停的函数功能
javascript实现像java、c#之类的sleep暂停的函数功能
77 0
|
3月前
|
C# Python
使用wxpython开发跨平台桌面应用,对wxpython控件实现类似C#扩展函数处理的探究
【10月更文挑战第30天】使用 `wxPython` 开发跨平台桌面应用时,可以通过创建辅助类来模拟 C# 扩展函数的功能。具体步骤包括:1. 创建辅助类 `WxWidgetHelpers`;2. 在该类中定义静态方法,如 `set_button_color`;3. 在应用中调用这些方法。这种方法提高了代码的可读性和可维护性,无需修改 `wxPython` 库即可为控件添加自定义功能。但需要注意显式调用方法和避免命名冲突。
|
8月前
|
开发框架 .NET 程序员
掌握C#语言的精髓:基础知识与实用技能详解(数据类型与变量+ 条件与循环+函数与模块+LINQ+异常+OOP)
掌握C#语言的精髓:基础知识与实用技能详解(数据类型与变量+ 条件与循环+函数与模块+LINQ+异常+OOP)
47 0
|
9月前
|
存储 C#
C#基础语法(数组和函数)
C#基础语法(数组和函数)
82 1
|
9月前
|
运维 编译器 C#
C# 9.0中的本地函数属性:深化函数级别的控制
【1月更文挑战第17天】C# 9.0引入了本地函数属性的概念,允许开发者在本地函数上应用属性,从而进一步细化对函数行为的控制。这一新特性不仅增强了代码的可读性和可维护性,还为函数级别的编程提供了更多的灵活性。本文将探讨C# 9.0中本地函数属性的用法、优势以及可能的应用场景,帮助读者更好地理解并应用这一新功能。
C#基础之Main函数
C#基础之Main函数
117 0
|
传感器 编解码 监控
Baumer工业相机堡盟工业相机如何通过BGAPISDK里的工具函数来计算工业相机的实时帧率(C#)
Baumer工业相机堡盟工业相机如何通过BGAPISDK里的工具函数来计算工业相机的实时帧率(C#)
78 0
|
C#
C#中方法函数的声明和调用
C#中方法函数的声明和调用
182 0
C#基础⑧——方法(函数、重载、out、ref)
比喻成职能。比喻成一个生产自行车老板,一个地方专门放螺丝,一个地方专门放轮,一个地方专门放车链子,需要组装什么就从那个仓库里面拿就行了。各司其职。
|
C#
利用最小二乘法拟合任意次函数曲线(C#)
原文:利用最小二乘法拟合任意次函数曲线(C#) ///     ///用最小二乘法拟合二元多次曲线     ///     ///已知点的x坐标集合     ///已知点的y坐标集合     ///已知点的个数     ///方程的最高次数     ...
3142 0