mboost-dp1
Lidt c# streng-magi
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Jeg sidder lige og leger lidt med strenge i c#, og jeg står over for følgende udfordring:
skal laves om til
Bemærk at f.eks. str1str3 aldrig behøver optræde i resultatet, kun de ord der står op af hinanden.
Jeg er ikke kommet op med noget endnu, som en 1. års datamatiker ikke kunne have gjort bedre :)
"str1 str2 str3 str4"
skal laves om til
"str1 str2 str3 str4 str1str2 str2str3 str3str4 str1str2str3 str2str3str4 str1str2str3str4"
Bemærk at f.eks. str1str3 aldrig behøver optræde i resultatet, kun de ord der står op af hinanden.
Jeg er ikke kommet op med noget endnu, som en 1. års datamatiker ikke kunne have gjort bedre :)
Det er til en søgeside, hvor søgninger skal foretages både med og uden mellemrum for alle kombinationer af ord der står op af hinanden når de indtastes.
Eks. skal en søgning på "Office 2011" søge på både "Office", "2011" og "Office2011". Den simple løsning var bare at fjerne alle mellemrum, men det bliver lidt flere linjers kode når der er mere end ét mellemrum.
Eks. skal en søgning på "Office 2011" søge på både "Office", "2011" og "Office2011". Den simple løsning var bare at fjerne alle mellemrum, men det bliver lidt flere linjers kode når der er mere end ét mellemrum.
milandt (4) skrev:Den simple løsning var bare at fjerne alle mellemrum, men det bliver lidt flere linjers kode når der er mere end ét mellemrum.
Du kan med en linie kode erstatte alle mellemrum med "".
s = s.Replace(" ", "");
using System;
using System.Text;
namespace E
{
public class Program
{
public static string JustDoIt(string s)
{
string[] parts = s.Split(' ');
StringBuilder sb = new StringBuilder();
for(int i = 0; i < parts.Length; i++)
{
for(int j = 0; j < parts.Length - i; j++)
{
if(sb.Length > 0) sb.Append(" ");
for(int k = 0; k <= i; k++)
{
sb.Append(parts[j+k]);
}
}
}
return sb.ToString();
}
public static void Main(string[] args)
{
string s = "str1 str2 str3 str4";
string s2 = "str1 str2 str3 str4 str1str2 str2str3 str3str4 str1str2str3 str2str3str4 str1str2str3str4";
string s3 = JustDoIt(s);
Console.WriteLine(s);
Console.WriteLine(s2);
Console.WriteLine(s3);
Console.ReadKey();
}
}
}
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.