在 C# 里,PadLeft 和 PadRight 是 String 类提供的两个非常实用的方法,它们主要用于对字符串进行补位操作。下面详细介绍这两个方法的原理和使用。
- 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) 是最终字符串的长度。在处理大量字符串补位操作时,可能会对性能产生一定影响。