Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo Leute,

kann mir vielleicht einer Helfen, da ich gerade dermaßen auf dem Schlauch stehe=).

Ich möchte von einer Zahl die z.b. 001234 heißt die vorderen 0 abschneiden.

Sprich mein Code sollte von links an losgehen und die nullen wegschneiden.

Am ende sollte meine zahl dann 1234 lauten

Aber er soll nicht die null in einer Zahl abschneiden also dass ich irgendwie replace mach sondern wirklich nur von vorne bis zur ersten zahl(außer 0) abschneiden.

Danke

Bsp.:

013098

=13098

003490

=3490

Geschrieben (bearbeitet)

=) danke

Okay ich komm trotzdem nciht auf den trichter=)

ich kann ja mit instr nicht ungleich null suchen oder geht das?

weil

Pos = instr(1,meinString,<>0)

geht ja nich...

Sorry kopf ist grad total platt...

Mir würde jetzt nur noch eine schleife einfallen die ich durchlaufen lass

jedes einzelne zeichen anschau

wenn ein zeichen ungleich 0 ist mir die zahl der durchläufe merken und ab da dann abschneiden?

Bearbeitet von ChristinaB
Geschrieben (bearbeitet)

Den String in eine Zahl (Integer) konvertieren. Damit sind die führenden "0" weg.


int a = Convert.ToInt32("001234"); // a = 1234;

Bearbeitet von lbm1305
Geschrieben


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Text.RegularExpressions;


namespace Regularexpressions

{

    class Program

    {

        static void Main(string[] args)

        {

            string Beispielstring = "001234567";

            Regex Expression = new Regex("[0]+([0-9]+)");

            System.Console.WriteLine(Expression.Match(Beispielstring).Groups[1].Value);

            System.Console.ReadKey();

        }

    }

}

Zur Erklärung:

[0]+ bildet eine Klasse aller Nullen, die mindestens einmal oder aber auch mehrfach vornewegstehen (0, 00, 000 usw.)

() die Klammern gruppieren einen Ausdruck, der uns im Weiteren interessiert.

[0-9]+ ist die Klasse aller Ziffern, die folgen.

Expression.Match() wendet die Expression an.

Groups enthält die Gruppe der Ausdrücke, die wir oben eingeklammert haben (Groups[1] eben den ersten und Groups[n] eben alle weiteren)

Groups[n].value gibt Dir den geklammerten Ausdruck zurück; also hier: alle Ziffern nach den Nullen, die vornewegstehen.

myCSharp.de - DIE C# und .NET Community | Artikel | [Artikel] Regex-Tutorial

Geschrieben
a) Regexes sind nicht kompliziert und universell

Für jemanden der sich damit auskennt nicht. Ich würde aber gern von einem Anfänger / Fotgeschrittenen wissen, was der folgende String überprüft, wenn man ihn an eine Regular Expression übergibt:

\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

Geschrieben

\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

soll wohl ein Überprüfung einer EMailadresse sein:

\w ist ein beliebiger Buchstabe oder Zahl oder Unterstrich

danach folgt dann im Grunde eine beliebig lange Zeichenkette die aber noch einen Punkt enthalten darf, dann das @ Zeichen nun die Domain, bei hier mindestens auch wieder ein Zeichen folgen muss (ich meine mich aber zu erinnern, dass Domains mind 3 Zeichen enthalten müssen und nicht mit einer Zahl beginnen dürfen, somit wäre die reg Expr hier etwas unpräzise), danach folgt der Punkt (Trennung zur TLD) und danach die TLD, wobei aber auch hier wieder nur ein Buchstabe möglich wäre, denn ebenso wie bei der Domain liefer ()* auch Kleene-Stern genannt die Menge inkl der leeren Menge

Geschrieben

@ flash: ist dir abends langweilig? :D

Generell stimme ich aber lbm zu, dass für so einen geringfügigen Anwendungsfall ein Regex den Quellcode einfach nur schwerer lesbar macht... vor allem für Leute, die nicht die JavaDoc als Gute-Nacht-Lektüre haben *zu flash rüberschau*

Würde es also so wie von lbm oder unserem piraten vorgeschlagen machen

Geschrieben
@ flash: ist dir abends langweilig? :D

Ich fand den Ausdruck sehr einfach, drauf gucken und man sieht das doch......

Das @ war sehr verdächtigt und im Grunde steht da doch Zeichen()* @ Zeichen()* . Zeichen()*. Mein Ansatz war erst mal alles wo ein Keeme Stern drin ist zu ignorieren, naja und dann ist es eigentlich klar.

Wenn man regelmäßig mit reg Expr arbeitet oder in solchen Veranstaltungen wie theoretische Informatik oder Compilerbau sitzt, dann ist das Alltag.

Geschrieben (bearbeitet)

Mal abgesehen davon, daß es durchaus komplexe RegExes gibt, glaube ich nicht, daß mein Beispiel unverständlich ist; vorallem habe ich es imho gut erklärt, so daß selbst jemand, der von regulären Ausdrücken noch nie etwas gehört hat, trotzdem mit meiner Erläuterung etwas anfangen kann.

Und wenn alles nix hilft, kann man sich auch selbst ne Schleife bauen, die alle führenden Nullen ignoriert, und den Rest in einen Ergebnis-String kopiert - fertig. Wofür ist man denn Programmierer? :D

Bearbeitet von lilith2k3
Geschrieben

Also ich hab nun so geregelt einfach in ein integer umgewandelt und dann sind meine Nullen weg=)

Profil = 001234

Profil = CInt(Profil)

und schon Fertig;)

Hab ja gesagt ich stand total aufm schlauch=)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...