字符串之间有多个空格。我想删除最后一个空格后的字符集(如果最后一组字符长度小于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);
}
}
}
好吧,LastIndexOf
和Substring
可以:
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);
}
}
}