为了账号安全,请及时绑定邮箱和手机立即绑定

如何从字符串中删除字符?

如何从字符串中删除字符?

C#
阿晨1998 2022-06-12 11:20:42
我有一个来自用户输入的字符串。我现在要做的是从此字符串中删除一个唯一字符,但只删除一次。主要问题是这个唯一字符没有唯一索引。例如:用户输入了一个字符串,如:“0123456”,现在我想删除第一个'1',所以字符串将输出为“023456”。但是,如果用户输入一个像“01123456”这样的字符串,我怎样才能删除第一个“1”并使它看起来像“0123456”?我正在寻找一种可用于这两种情况的方法。我正在使用 string.TrimStart(),但没有得到我想要的。我怎样才能做到这一点?
查看完整描述

3 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

另一种方法是使用ContainsRemove和的组合IndexOf

if (userInput.Contains('1')) userInput = userInput.Remove(userInput.IndexOf('1'), 1);

或者,如果你想成为 Linq-y...

userInput = string.Concat(userInput.TakeWhile(chr => chr != '1')
    .Concat(userInput.SkipWhile(chr => chr != '1').Skip(1)));


查看完整回答
反对 回复 2022-06-12
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

我认为你需要的是string.Remove方法。请参阅此处的 MSDN 文档:https ://docs.microsoft.com/en-us/dotnet/api/system.string.remove?view=netframework-4.7.2#System_String_Remove_System_Int32_System_Int32_

如果您不知道您的角色在哪里,请先致电string.IndexOf找到它。如果此调用返回非负数,则调用Remove将其删除。请注意,字符串是不可变的,因此它总是会创建一个新对象。


查看完整回答
反对 回复 2022-06-12
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

您可以使用Remove和IndexOf。


var str = "01123456";

var i = str.IndexOf('1'); // IndexOf returns -1 when there is no element found, so we need to handle that when calling remove.

var res = (i >= 0) ? str.Remove(i, 1) : str;

Console.WriteLine(res); // 0123456


查看完整回答
反对 回复 2022-06-12
  • 3 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信