从多个字符串中删除最后一个空格后的整组字符



字符串之间有多个空格。我想删除最后一个空格后的字符集(如果最后一组字符长度小于4(。

string firstString = "test value1";
string secondString = "test value che";
string thirdString = "test value che ck3"

预期结果:

firstString = test value1
secondstring =test value
thirdstring = test value che

以下内容应该能满足您的示例。

public static string CleanString(string value)
{
var lastSpaceIndex = value.LastIndexOf(' ');
if(lastSpaceIndex < 0) return value;
var residue = value.Substring(lastSpaceIndex);
if (residue.Length <= 4)
{
return value.Substring(0, lastSpaceIndex);
}
else
{
return value;
}
}
using System;  

namespace DateTimeFormatInCSharpSample  
{  
public class Program  
{  
public static void Main(string[] args)  
{  
string firstString = "test value1";
string secondString = "test value che";
string thirdString = "test value che ck3";

var p = new Program();

Console.WriteLine(p.getNewString(firstString));
Console.WriteLine(p.getNewString(secondString));
Console.WriteLine(p.getNewString(thirdString));
}  

public string getNewString(string str)
{
var spaceIndex = str.LastIndexOf(" ");
return (str.Substring(spaceIndex).Length < 4) ?  str : str.Substring(0,spaceIndex);
}
}  
}  

好吧,LastIndexOfSubstring可以:

static string MyRemove(string value, int maxSize = 3) {
int lastIndex = value?.LastIndexOf(' ') ?? -1;
return (lastIndex >= 0 && lastIndex >= value.Length - maxSize - 1)
? value.Substring(0, lastIndex)
: value;
}

演示:

string[] tests = new string[] {
"test value1",
"test value che",
"test value che ck3",
"test and test",
null,
" abc",
"abracadabra",
};
Console.Write(string.Join(Environment.NewLine, tests
.Select(test => $"{test,-25} -> {MyRemove(test)}")));

结果:

test value1               -> test value1
test value che            -> test value
test value che ck3        -> test value che
test and test             -> test and test
-> 
abc                      -> 
abracadabra               -> abracadabra

这里有一个.Net文件:

namespace DateTimeFormatInCSharpSample  
{  
public class Program  
{  
public static void Main(string[] args)  
{  
string firstString = "test value1";
string secondString = "test value che";
string thirdString = "test value che ck3";

var p = new Program();

Console.WriteLine(p.getNewString(firstString));
Console.WriteLine(p.getNewString(secondString));
Console.WriteLine(p.getNewString(thirdString));
}  

public string getNewString(string str)
{
var spaceIndex = str.LastIndexOf(" ");
return (str.Substring(spaceIndex).Length < 4) ?  str : str.Substring(0,spaceIndex);
}
}  
}  

最新更新