Avatar billede beef12 Nybegynder
12. november 2004 - 14:53 Der er 14 kommentarer og
1 løsning

formattering af en streng

Vil gerne formattere en streng...

Hvis jeg har denne streng:

"type = 'etellerandet'"

og jeg gerne vil ændre den så type før lighedstegnet ændres til
f.eks.

"TYPE = 'etellerandet'"

hvordan gør jeg det. Altså finder ud af hvad der står før lighedstenget og ændrer det til noget andet?

Ligeledes hvis jeg vil ændre det til:
"type = 'nogetandet'"

Altså finde alt efter lighedstegn og ændre det som jeg har lyst.
Avatar billede arne_v Ekspert
12. november 2004 - 14:56 #1
string s = "type = 'etellerandet'";
s = s.Replace("type = ", "TYPE = ");
Avatar billede kalp Novice
12. november 2004 - 14:56 #2
ved ikke lige hvad du mener... nok fordi jeg ikke aner hvad type er for noget.. en variabel? .. koder i Java.. derfor hehe

String hej ="hihi"

If (hej.equals("hihi"))
hej = "hoho";
Avatar billede kalp Novice
12. november 2004 - 14:57 #3
kan også være dette skal være If (hej.equals == "hihi))

for det sammenlignes ikke med et objekt jo
Avatar billede arne_v Ekspert
12. november 2004 - 14:58 #4
eller

string s = "type = 'etellerandet'";
int ix = s.IndexOf('=');
s = "TYPE = " + s.Substring(ix + 1);
Avatar billede arne_v Ekspert
12. november 2004 - 15:02 #5
using System;

namespace DefaultNamespace
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            string s = "type = 'etellerandet'";
            string s2 = s.Replace("type = ", "TYPE = ");
            Console.WriteLine(s2);
            int ix3 = s.IndexOf('=');
            string s3 = "TYPE =" + s.Substring(ix3 + 1);
            Console.WriteLine(s3);
            string s4 = s.Replace("'etellerandet'", "'nogetandet'");
            Console.WriteLine(s4);
            int ix5 = s.IndexOf('=');
            string s5 = s.Substring(0, ix5 + 2) + "'nogetandet'";
            Console.WriteLine(s5);
           
        }
    }
}
Avatar billede beef12 Nybegynder
12. november 2004 - 15:03 #6
Det er nok noget af det sidste arne_v kommer med som jeg skal bruge... da jeg aldrig kan være sikker på at strengen indeholder "=", det kan lige så godt være "<>" eller ">" osv...
Avatar billede arne_v Ekspert
12. november 2004 - 15:05 #7
IndexOf returnerer -1 hvis det man søger efter ikke er der.
Avatar billede beef12 Nybegynder
12. november 2004 - 15:07 #8
desuden er det ikke altid det der står før lighedstegnet at der står type. Jeg skal faktisk pille "type" ud og query min database og vise f.eks. TYPE eller hvad der nu står i databasen hvad type nu virkelig hedder...

Så det skal nok være mere generelt
Avatar billede beef12 Nybegynder
12. november 2004 - 15:11 #9
så basically hvordan piller jeg type og 'etellerandet' og gemmer dem i variabler?
Avatar billede arne_v Ekspert
12. november 2004 - 15:11 #10
Er det:

            string s = String.Format("{0} {1} {2}", "felt", "=", "'værdi'");
            Console.WriteLine(s);

du leder efter ?
Avatar billede beef12 Nybegynder
12. november 2004 - 15:19 #11
nej det tror jeg ikke.

hvis det er muligt at på en eller anden måde gøre noget i den stil:

string s = "type = 'noget'"

gøre noget så de gemmes i variabler og derefter kalde dem, f.eks.

Console.Write(s1)    // skriver type
Console.Write(s2)    // skriver 'noget'


Kan man det?

I må undskylde at jeg stiller sådan nogle hjernedøde spørgsmål - er mega noobie til C# :-)
Avatar billede arne_v Ekspert
12. november 2004 - 15:20 #12
Måske ligesom det her:

using System;

namespace DefaultNamespace
{
    class MainClass
    {
        public static string BeforeOperator(string s)
        {
            int ix = s.IndexOf("=");
            if(ix < 0)
            {
                ix = s.IndexOf("<>");
            }
            if(ix < 0)
            {
                ix = s.IndexOf(">");
            }
            if(ix < 0)
            {
                ix = s.IndexOf("<");
            }
            return s.Substring(0, ix).Trim();
        }
        public static string AfterOperator(string s)
        {
            int len = 1;
            int ix = s.IndexOf("=");
            if(ix < 0)
            {
                ix = s.IndexOf("<>");
                len = 2;
            }
            if(ix < 0)
            {
                ix = s.IndexOf(">");
            }
            if(ix < 0)
            {
                ix = s.IndexOf("<");
            }
            return s.Substring(ix + len).Trim();
        }
        public static void Main(string[] args)
        {
            string s = "felt <> 'værdi'";
            string s1 = BeforeOperator(s);
            Console.WriteLine(s1);
            string s2 = AfterOperator(s);
            Console.WriteLine(s2);
        }
    }
}
Avatar billede beef12 Nybegynder
12. november 2004 - 15:28 #13
okay - det ligner jo lidt af det jeg søger efter  - det glæder jeg mig til at teste, men nu vil jeg ud og teste årets sortiment af J-pils...
Avatar billede beef12 Nybegynder
14. november 2004 - 00:54 #14
Jeps - det virkede Arne. Smid et svar...

Jeg oprettet et nyt spm som ligner dette en del - men som en smule mere kryptisk. Håber du vil kaste dit falkeblik over det: http://www.eksperten.dk/spm/561109
Avatar billede arne_v Ekspert
14. november 2004 - 10:46 #15
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester