2009-04-07 3 views
-3

私は関数を書こうとしていますが、2つのパラメータは文字列で、もう1つは数値データ型です。実行時(数値データ型で指定された数値)誰も私を助けてくれますか?関数はn個の文字の後にドットを入れようとしています

+0

でに何語? –

+0

疑義がある場合は、疑似コード。彼は必要ならば特定の言語に適応することができます:) – Joey

+0

これは宿題のように聞こえる。 – Patrick

答えて

1

どのような言語ですか? C#ので

public string PutDots(string input, int n) 
{ 
    char[] c = input.ToCharArray(); 
    StringBuilder output = new StringBuilder(); 
    for (int i = 0; i < c.Length; i++) 
    { 
     output.Append(c[i]); 
     if (i % n == 0 && i > 0) 
     { 
      output.Append("."); 
     } 
    } 
    return output.ToString(); 
} 
+0

なぜ私は<0ですか?あなたは彼/彼女が思うようにしようとしていますか? :) –

2

これは宿題のようなにおいがするので、私は開始し、その後、あなたが得ているどのくらいで戻って来ることができる方法を提案してみましょう。

まず、文字列を反復処理するか、少なくともN文字をその長さに沿ってジャンプする必要があります。 N文字を反復するか、文字列を部分文字列に分割するまで、各文字を繰り返し処理できる構造を考えてみてくださいN文字が長いですか?

1

多分このような何か:

public string foo(string input, int count) 
{ 
    string result = ""; 
    for(int i=0; i < input.length; i++) 
    { 
    result += input[i]; 
    if(i % count == 0) 
     result += '.'; 
    } 
    return result; 
} 

(言語によっては、あなたがresultingstringを構築するために、文字列の連結何か他のものを使用する場合があります)

+0

これはJavaのようです。注意してください。 Java Stringの各文字には、大括弧で囲んで、input [i]のようなインデックスを持つTjofrasを使用することはできません。擬似コードのように扱います。 – euphoria83

0

C#の場合:

static string InsertDots(string s, int n) 
{ 
    if(string.IsNullOrEmpty(s)) return s; 

    if(n <= 0 || n > s.Length) return s; 

    Regex re = new Regex(string.Format("(.{{{0}}})", n)); 

    return re.Replace(s, "$1."); 
} 
関連する問題