c#中的字符串处理
本文关键字:处理 字符串 | 更新日期: 2023-09-27 18:09:43
是否有任何方法,我可以使用它在用一些分隔符拆分字符串并使用默认字符串填充其余部分后返回固定长度的数组。如。
string fullName = "Jhon Doe";
string[] names = fullName.SpecialSplit(some parameters); //This should always return string array of length 3 with the second elememnt set to empty if there is no middle name.
下次请指定您要询问的语言。我们不猜测。
Java:fullName.split(" ");
无论如何,没有方法会"返回长度为3的字符串数组,如果没有中间名,第二个元素设置为空"。对于该方法,只有两个元素。你必须自己编写这个方法来包装标准的split()方法。
你应该读读Jon Skeet的《写完美的问题》。这将有利于你在未来张贴问题的StackOverflow。
在c#中没有方法来做你所要求的,但是你可以很容易地编写一个扩展方法来做我认为你所要求的。这里有一个简单的例子:
public static class AbreviatorExtention
{
public static string[] GetInitials(this String str, char splitChar)
{
string[] initialArray = new string[3];
var nameArray = str.Split(new char[] { splitChar },
StringSplitOptions.RemoveEmptyEntries);
if (nameArray.Length == 2)
{
var charArrayFirstName = nameArray[0].ToCharArray();
var charArrayLastName = nameArray[1].ToCharArray();
initialArray[0] = charArrayFirstName[0].ToString().ToUpper();
initialArray[1] = string.Empty;
initialArray[2] = charArrayLastName[0].ToString().ToUpper();
}
else
{
for (int i = 0; i < nameArray.Length; i++)
{
initialArray[i] = (nameArray[i].ToCharArray())[1]
.ToString().ToUpper();
}
}
return initialArray;
}
}
class Program
{
static void Main(string[] args)
{
string FullName = "john doe";
//Extension method in use
string[] names = FullName.GetInitials(' ');
foreach (var item in names)
{
Console.WriteLine(item);
}
Console.ReadLine();
}
}
输出:J
D
我将它设置为将字符串与固定数组分开。如果您仍然想要一个固定的数组,那么您可以将数组的大小设置为3并填充。然而,这不是最好的方法,因为它没有意义。更好的做法是,设置一个person或user类,然后通过规则从拆分的字符串中填充。