我有一个从userInput获取的字符串。我现在想做的是从此字符串中删除唯一字符,但只删除一次。主要问题是此唯一字符没有唯一索引。例如: 用户输入了一个字符串:“ 0123456”,现在我想删除第一个'1',因此该字符串将输出为“ 023456”。但是,如果用户输入的字符串类似“ 01123456”,如何删除第一个“ 1”并使它看起来像“ 0123456”?我正在寻找一种可用于两种情况的方法。我正在使用string.TrimStart(),但没有得到我想要的东西。我该怎么办?
答案 0 :(得分:4)
您可以使用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
答案 1 :(得分:0)
我认为您需要的是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
将其删除。请注意,字符串是不可变的,因此它将始终创建一个新对象。
答案 2 :(得分:0)
yourstring = yourstring.IndexOf('1') != -1 ? yourstring.Remove(yourstring.IndexOf('1'), 1) : yourstring;
答案 3 :(得分:0)