2

名前がスペースで区切られた複数の部分で構成されていて、次のように取得したい場合:

the first name + " " + the last name.

それを行う方法はありますか?

  • 名前をスペースで区切る以外のルールはありません。

  • パーツはいくつもあります。

例:

john depp lennon

に:

john lennon
4

3 に答える 3

5
string sString = "john depp lennon";
string[] sArray = sString.Split(' ');

string sStartEnd = sArray[0] + " " + sArray[sArray.Count()-1]; // "john lennon"
于 2011-12-25T11:41:36.543 に答える
3

タグでLINQについて言及したので、1つの部分(「Johm」のみ)を入力するための検証をスキップするか、何も入力しない場合は、次のようになります。

次のことを確認してください。

using System.Linq;

それで:

var nameParts = name.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
var fullName = string.Format("{0} {1}", nameParts.First(), nameParts.Last());

Thiseは幸せな道のために仕事をします


エッジケースをチェックする場合は、次のチェックを追加できます。

static string GetName(string nameEntry)
{
    // assuming .NET 4, or use string.IsNullOrEmpty(), 
    //    as we are protected later from white space-only text
    if(string.IsNullOrWhiteSpace(nameEntry))
        return string.Empty; // Or throw error. Your choice

    var nameParts = nameEntry.Split(new[] { ' ' }, 
                                        StringSplitOptions.RemoveEmptyEntries);
    if(!nameParts.Any()) return string.Empty(); // Or throw error. Your choice

    if(nameParts.Length == 1)
        return nameParts.First();

    var fullName = string.Format("{0} {1}", nameParts.First(), nameParts.Last());
    return fullName;
}
于 2011-12-25T11:57:29.297 に答える
2
string str = "john depp lennon";      
string[] data = str.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
string result = string.Format("{0} {1}", data.First(), data.Last());
于 2011-12-25T11:45:51.300 に答える