2016-11-14 1 views
0

Visual Studioを使用して、C#windows formを作成して、ユーザの姓と名を見つけるのに役立ちます。私はstring.splitを使用して最初のスペースを見つけてそこから分割しますが、それは最初のスペース以降のものです。ユーザーが「ドナルド・ダック氏」と入力した場合、私はそれをその状況で動作させることはできません。C#文字列を使用してフルネームを見つけるためのコード化

「Mr. -5 spaces- Donald -5spaces-Duck」
コードは最初のスペースを超えて読み取られません。
提案がありますか?

+0

はあなたにみんなありがとう、私は* ** KAZの組み合わせを使用しました*と** Avneesh Srivastava **が私の問題を解決しました。他の質問がある場合はここで確認してください。 –

答えて

0

常にString.Trim()関数を使用する必要があります。文字列としてのユーザー入力を処理するときに、文字列から先頭と末尾の空白を削除するには

string s = " Mr. Donald duck "; 
// Split string on spaces. 
// ... This will separate all the words. 
string[] words = s.Trim().Split(' '); 
//.....check size of array. 
if(words.Length ==3) 
{ 
    string suffix=words[0]; 
    string firstname=words[1]; 
    string lastname=words[2]; 
} 

私はあなたの質問で-5を得ていませんが、これが役立つことを願っています。

0

空の文字列を削除オプションで分割すると、空の単語配列が結果として得られます。そこからあなたは名前の部分を得ることができます。

Demo

0

のstring.Splitのための構文は次のようになります:あなたは簡単に文字列を使用して、文字列の両端から空白を削除することができますMSDNによるとだけ説明 ため

//    0  1  2 
    //   ooo|oooooo|oooo 
    string str = "Mr. Donald Duck"; 

    string suffix = str.Split(' ')[0]; 
    string fname = str.Split(' ')[1]; 
    string lname = str.Split(' ')[0]; 
0

.Trimメソッド。あなたはそれを読むことができますhere。より良い理解のために、あなたはhere

string input = Console.ReadLine(); 
      // This will remove white spaces from both ends and split on the basis of spaces in string. 
string[] tokens = input.Trim().Split(' '); 

string title = tokens[0]; 
string firstname = tokens[1]; 
string secondname = tokens[2]; 
1

Trimmingを訪問することができます唯一の先頭と末尾の空白文字の世話をしようとしています。あなたは単語間のすべてのそれらの余分なスペースを持っている場合、テキストのちょうど3つの便利な部品を得るためにHere's what you need

string name = "Mr.  Donald  Duck"; 
string[] split = name.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); 

文字列配列は、3つの項目が含まれます:Mr.Donald、およびDuckStringSplitOptions.RemoveEmptyEntriesは、元の文字列を分割するときに空白を繰り返し処理します。それがなければ

、あなたはこのような何かを得る:Mr.DonaldDuck

関連する問題