我是否可以使用任何方法在使用某个分隔符拆分字符串后返回固定长度数组,并使用默认字符串填充其余部分。 例如。
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.
答案 0 :(得分:1)
下次指定您要询问的语言。我们没有猜测。
在Java中:
fullName.split(" ");
无论如何,没有方法将“返回长度为3的字符串数组,如果没有中间名,则将第二个elememnt设置为空”。对于该方法,只有两个元素。你必须自己编写包含标准split()方法的方法。
答案 1 :(得分:0)
你应该阅读Jon Skeet的Writing the perfect question。在发布StackOverflow的问题时,将来对您有好处。
C#中没有方法可以按照您的要求进行操作,但您可以轻松编写extension method来执行我认为您要求的操作。
这是一个简单的例子:
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
答案 2 :(得分:0)
我会将其设置为将字符串与固定数组分开。如果您仍然需要固定数组,则将数组设置为大小为3的填充。然而,这不是最好的方法,因为它没有任何意义。更好的是,设置一个人或用户类,然后通过规则从拆分字符串中填充。