2009-04-07 7 views
-3

J'essaie d'écrire une fonction, il a 2 paramètres l'un est de chaîne et l'autre est de type numérique, ma fonction doit placer un point après chaque N caractères, où N est fourni au moment de l'exécution (un certain nombre fourni par le type de données de nombre). Quelqu'un peut-il m'aider s'il vous plaît?fonction essayant de mettre point après n caractères

+0

En quelle langue? –

+0

En cas de doute, Pseudocode. s? il peut s'adapter à une langue particulière si nécessaire :) – Joey

+0

Cela ressemble à des devoirs. – Patrick

Répondre

1

Quelle langue?

En 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

pourquoi je <0? Essaies-tu de le faire réfléchir? :) –

2

Cela sent comme les devoirs, je vous propose donc comment commencer, et vous pouvez revenir avec la distance que vous avez obtenu. Tout d'abord, vous devez pouvoir parcourir la chaîne ou au moins avancer de N caractères sur sa longueur. Pouvez-vous penser à une construction qui vous permet d'itérer chaque caractère jusqu'à ce que vous ayez itéré le caractère N, ou que vous puissiez diviser la chaîne en sous-chaînes N caractères?

1

quelque chose comme ça peut-être:

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; 
} 

(En fonction de la langue que vous voudrez peut-être utiliser quelque chose d'autre, alors la concaténation de chaîne pour construire le resultingstring)

+0

Cela ressemble à Java. Faites attention. vous ne pouvez pas accéder à chaque caractère de la chaîne Java en utilisant des crochets avec un index comme: input [i], comme Tjofras comme indiqué. Traitez-le comme un pseudocode. – euphoria83

0

En 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."); 
} 
Questions connexes