C#中删除字符串指定位置字符的5种方法

 更新时间:2026年02月24日 09:44:12   作者:Never_Satisfied  
文章介绍了在C#中删除字符串中第x个字符的几种方法,包括String.Remove()、Substring()、StringBuilder、字符数组和LINQ,并提供了完整示例,推荐使用String.Remove()方法,因其简洁高效,下面小编通过代码为大家详细说说,需要的朋友可以参考下

在C#中,有几种方法可以删除字符串中的第x个字符(假设x是从0开始的索引)。以下是几种常用方法:

方法1:使用String.Remove()方法(最简洁)

// 删除第x个字符(索引从0开始)
string str = "Hello World";
int x = 6; // 要删除的字符索引

string result = str.Remove(x, 1);
Console.WriteLine(result); // 输出: Hello orld

// 如果要删除的索引从1开始(人类可读)
int x_human = 7; // 第7个字符
string result2 = str.Remove(x_human - 1, 1);
Console.WriteLine(result2); // 输出: Hello orld

方法2:使用Substring()拼接

string str = "Hello World";
int x = 6;

// 取x之前的部分 + x之后的部分
string result = str.Substring(0, x) + str.Substring(x + 1);
Console.WriteLine(result); // 输出: Hello orld

方法3:使用StringBuilder(适合多次修改)

using System.Text;

string str = "Hello World";
int x = 6;

StringBuilder sb = new StringBuilder(str);
sb.Remove(x, 1);
string result = sb.ToString();
Console.WriteLine(result); // 输出: Hello orld

方法4:转换为字符数组处理

string str = "Hello World";
int x = 6;

char[] chars = str.ToCharArray();
char[] newChars = new char[chars.Length - 1];

// 复制x之前的字符
Array.Copy(chars, 0, newChars, 0, x);
// 复制x之后的字符
Array.Copy(chars, x + 1, newChars, x, chars.Length - x - 1);

string result = new string(newChars);
Console.WriteLine(result); // 输出: Hello orld

方法5:LINQ 方法

using System.Linq;

string str = "Hello World";
int x = 6;

string result = new string(str
    .Where((c, index) => index != x)
    .ToArray());
Console.WriteLine(result); // 输出: Hello orld

完整示例:删除第x个字符的函数

public static class StringExtensions
{
    // 方法1:删除指定索引的字符
    public static string RemoveCharAt(this string str, int index)
    {
        if (string.IsNullOrEmpty(str) || index < 0 || index >= str.Length)
            return str;
        
        return str.Remove(index, 1);
    }
    
    // 方法2:删除指定位置(从1开始计数)的字符
    public static string RemoveCharAtPosition(this string str, int position)
    {
        if (string.IsNullOrEmpty(str) || position < 1 || position > str.Length)
            return str;
        
        return str.Remove(position - 1, 1);
    }
}

// 使用示例
string text = "Hello World";
Console.WriteLine(text.RemoveCharAt(6));      // 输出: Hello orld
Console.WriteLine(text.RemoveCharAtPosition(7)); // 输出: Hello orld

注意事项

  1. 索引范围:确保索引在有效范围内(0 到 str.Length-1
  2. 性能考虑
    • 对于单次操作,使用 Remove() 方法最简单高效
    • 对于多次连续修改,使用 StringBuilder 更高效
  3. 字符串不可变性:C# 字符串是不可变的,所有操作都会创建新字符串

常见问题处理

// 处理边界情况和错误
public static string SafeRemoveCharAt(string str, int index)
{
    if (string.IsNullOrEmpty(str))
        return str;
    
    if (index < 0 || index >= str.Length)
    {
        // 可以选择抛出异常或返回原字符串
        // throw new ArgumentOutOfRangeException(nameof(index));
        return str;
    }
    
    return str.Remove(index, 1);
}

推荐使用 string.Remove() 方法,它是最简洁且性能良好的选择。

到此这篇关于C#中删除字符串指定位置字符的5种方法的文章就介绍到这了,更多相关C#删除字符串指定位置字符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#使用log4net打日志

    C#使用log4net打日志

    本文主要介绍了C#使用log4net打日志,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • C#中如何正确的使用字符串String

    C#中如何正确的使用字符串String

    这篇文章主要给大家介绍了关于在C#中如何正确的使用字符串String的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • C#对Task中的异常进行捕获的几种常见方法

    C#对Task中的异常进行捕获的几种常见方法

    在C#中异步Task是一个很方便的语法,经常用在处理异步,例如需要下载等待等方法中,不用函数跳转,代码阅读性大大提高,深受大家喜欢,但是有时候发现我们的异步函数可能出现了报错,本文给大家介绍了C#对Task中的异常进行捕获的几种常见方法,需要的朋友可以参考下
    2025-01-01
  • C#客户端程序调用外部程序的3种实现方法

    C#客户端程序调用外部程序的3种实现方法

    这篇文章主要给大家介绍了关于C#客户端程序调用外部程序的3种实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04
  • C#对称加密(AES加密)每次生成的结果都不同的实现思路和代码实例

    C#对称加密(AES加密)每次生成的结果都不同的实现思路和代码实例

    这篇文章主要介绍了C#对称加密(AES加密)每次生成的结果都不同的实现思路和代码实例,每次解密时从密文中截取前16位,这就是实现随机的奥秘,本文同时给出了实现代码,需要的朋友可以参考下
    2015-07-07
  • C#采用递归实现阶乘的方法

    C#采用递归实现阶乘的方法

    这篇文章主要介绍了C#采用递归实现阶乘的方法,很有借鉴价值的一个算法技巧,需要的朋友可以参考下
    2014-08-08
  • c#winform窗口页面一打开就加载的实现方式

    c#winform窗口页面一打开就加载的实现方式

    这篇文章主要介绍了c#winform窗口页面一打开就加载的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 详解C#借助.NET框架中的XmlTextReader类读取XML的方法

    详解C#借助.NET框架中的XmlTextReader类读取XML的方法

    这篇文章主要介绍了详解借助.NET框架中的XmlTextReader类读取XML的方法,这种方式的执行效率还是比较令人满意的,需要的朋友可以参考下
    2016-04-04
  • Quartz.Net调度框架配置解析

    Quartz.Net调度框架配置解析

    这篇文章主要为大家详细介绍了Quartz.Net调度框架的配置方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • C#实现货币金额数字转大写汉字

    C#实现货币金额数字转大写汉字

    这篇文章主要为大家详细介绍了如何使用C#实现货币金额数字转大写汉字功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01

最新评论