【问题标题】:easy way of removing char from a string? [closed]从字符串中删除字符的简单方法? [关闭]
【发布时间】:2021-08-13 17:01:10
【问题描述】:

我有这样的string

string something = "12+3-1";
something.hereIwantToRemoveFirstElement();
Console.WriteLine(something); // i want to get "2+3-1"

有可能吗?或者也许我应该这样做以从字符串中删除字符,就像在 List 中一样?

something.RemoveAt(2);
Console.WriteLine(something);// i want to get "123-1"

或者也许有简单的方法将整个字符串转换为列表,然后删除特定元素?

something.ToList().
something.RemoveAt(0);// i want to get "2+3-1"

你能告诉我如何有效地做到这一点吗?

【问题讨论】:

  • 当然,如果您使用的是string,并且您使用的是已经提供的方法RemoveAt,那么问题是什么?
  • something.Substring(1) 将删除第一个元素。如果你想把它转成一个列表,something.ToList() 会做,然后string.Concat(something) 把它转回字符串
  • @AndrewTruckle 没有String.RemoveAt()
  • 很遗憾,当我单击“。”时在我的字符串旁边,我只得到 Remove,而不是 RemoveAt,而且我没有得到 ToList(),我正在使用 Visual Studio,我应该为此下载一些库?
  • @Maciek - ToListSystem.Linq 命名空间的一部分,因此只需为此添加 using 声明。虽然我会说对于这样一个简单的字符串操作来说这将是一种奇怪的方法。只需使用其中一种内置方法。请记住,始终查看文档以了解这些方法的作用以及正确使用示例是一个好主意。

标签: c#


【解决方案1】:

您可以使用String.Remove 方法返回一个新字符串,其中删除了当前字符串中指定数量的字符:

var startIndex = 2;
var count = 1;
Console.WriteLine("12+3-1".Remove(startIndex, count)); prints "123-1"
Console.WriteLine("12+3-1".Remove(0, count)); prints "2+3-1"

【讨论】:

    【解决方案2】:

    字符串是不可变的,所以你不能就地编辑它们,但是你可以创建一个没有第一个字符的新字符串

    string something = "12+3-1";
    string result = something.Substring(1);
    

    当然,您也可以将结果分配回相同的变量

    string something = "12+3-1";
    something = something.Substring(1);
    

    您也可以使用相同的方法连接原始的 2 个子字符串

    string result = something.Substring(0,2) + something.Substring(3); // 123-1
    

    【讨论】:

      【解决方案3】:

      您可以像这样使用Remove 方法:

      something = something.Remove(0, 1);
      

      【讨论】:

        【解决方案4】:

        有(至少)两种可能性。

        1. 你使用String.Remove

           var s = "1234";
           //removes 1 character at position 2
           s = s.Remove(2,1); 
           Console.WriteLine(s); //prints 124
          
        2. 你使用String.Substring

           var s = "1234";
          
           //takes a substring from index 0 and length 2 and 
           //concatenates it with a substring starting at index 3, 
           //thus effectifly removing one character at index 2
           s = s.Substring(0,2) + s.Substring(3);  
          
           Console.WriteLine(s); //prints 124
          

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-02
          • 1970-01-01
          • 2021-03-17
          • 1970-01-01
          • 2011-07-05
          相关资源
          最近更新 更多