2011-09-27 6 views
-1

文字列を区切り文字で区切って残りの文字列を既定の文字列で埋めた後に固定長配列を返す方法はありますか? 例C#での文字列作成

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. 
+3

言語? C#? Java? –

+0

ありません。 1つ書いてください。 –

+0

@Austin Salonen:Java Stringが大文字になります。 –

答えて

0

あなたはJon SkeetのWriting the perfect questionを読んでください。 StackOverflowの質問を投稿する際には、将来あなたに有益です。

あなたが求めていることを行う方法はありませんが、あなたが尋ねていると思われることを容易に書くために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 
1

次回は、お求めの言語を指定してください。私たちは推測家ではありません。 Javaでは

fullName.split(" "); 

とにかく、何の方法は、「何のミドルネームがない場合は空にして設定された第2のelememntで長さ3の文字列配列を返さない」でしょう。このメソッドには、2つの要素しかありません。標準のsplit()メソッドをラップして、そのメソッドを自分で記述する必要があります。

0

私は一定の配列から独立した文字列を分割するように設定します。それでもまだ固定配列が必要な場合は、配列を3つのサイズに設定します。しかし、意味がないので、これは最善の方法ではありません。より良い方法は、人やユーザーのクラスを設定し、分割された文字列からルールを使用して設定することです。

関連する問題