String nach Integers durchsuchen

  • Thallius schrieb:

    Jaja, die Tiroler und die Kölner. Das sind alle so Sturköppe das kann nicht klappen mit der Kommunikation :)

    Gruß

    Claus

    Ich wollte ja gar nicht mit gritsch diskutieren. *Schulterzuck* Aber er kann es ja nicht lassen, seinen Unfug auf meine Beiträge abzusondern. Auch wenn er es dann wieder vergisst.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • gritsch schrieb:

    Amin Negm-Awad schrieb:

    Yup, deshalb habe ich auch immer bei Systemupdates Probleme mit den Depples von Apple.


    was hat das damit zu tun?

    Es zeigt, dass du keine Ahnung hast und deshalb nicht beurteilen kann, was Unfug ist. Auch das war jetzt eigentlich für einen durchschnittlich talentierten Menschen intellektuell nicht herausfordernd. Aber dich fordert ja offensichtlich schon die Lektüre deiner eigenen Beiträge intellektuell heraus.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    gritsch schrieb:

    Amin Negm-Awad schrieb:

    Yup, deshalb habe ich auch immer bei Systemupdates Probleme mit den Depples von Apple.


    was hat das damit zu tun?

    Es zeigt, dass du keine Ahnung hast und deshalb nicht beurteilen kann, was Unfug ist. Auch das war jetzt eigentlich für einen durchschnittlich talentierten Menschen intellektuell nicht herausfordernd. Aber dich fordert ja offensichtlich schon die Lektüre deiner eigenen Beiträge intellektuell heraus.


    omg - musst du nicht selbst lachen?
  • Ich habe ein Textfeld in das ein String der Form x (y) eingegeben werden soll (inklusive Klammern), wobei x,y int's sind. Nun möchte ich diesen String nach den beiden int's durchsuchen und mir diese ausgeben lassen.
    Wie kann ich das machen? Irgendwie habe ich bisher keine passende Methode gefunden die das macht.
    Wenn es wirklich so trivial ist:

    Quellcode

    1. NSString *text = @"12345 (67890)";
    2. NSCharacterSet *set = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet];
    3. NSArray *valueList = [text componentsSeparatedByCharactersInSet:set];
    4. NSLog(@"%@", valueList);


    Viele Grüße
  • little_pixel schrieb:

    Dann wäre aber noch der Punkt mit dabei.
    Habe es aber nicht probiert oder getestet. Vermutlich…

    Viele Grüße

    Ah, ds stimmt. Sollte in seinem Fall zwar nicht vorkommen, aber wenn man schon eine allgemeine Lösung programmiert, kann man es gleich richtig machen.

    +++

    Neee, stimmt doch nicht?
    "Discussion
    Informally, this set is the set of all characters used to represent the decimal values 0 through 9. These characters include, for example, the decimal digits of the Indic scripts and Arabic."

    Scheinen wirklich nur 0-9 zu sein, bloß in allen Kodierungen. Das heißt ja auch nicht decimalNumberCharacterSet. Ich kann leider gerade nicht testen.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • @little_pixel,s Lösung funktioniert auch mit Dez. Punkt wenn er mit im Set ist.

    Quellcode

    1. NSString *text = @"12345.77 (67890.08)";
    2. NSCharacterSet *set = [[NSCharacterSet characterSetWithCharactersInString:@".0123456789"] invertedSet];
    3. NSArray *valueList = [text componentsSeparatedByCharactersInSet:set];
    4. NSLog(@"%@", valueList);


    "decimalDigitCharacterSet" berücksichtigt den Punkt nicht, aber es handelt sich ja lt. Beitrag 1 um "int,s" !
  • Ich schrieb ja, dass es hier nicht darauf ankommen sollte. Da aber Pixelchen Lösung recht allgemein formuliert ist, wäre es natürlich nett, wenn es auch möglichst allgemein funktionieren würde. Aber lt. Doku ist ja ohnehin kein Punkt im Set.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Nochmals zurück zum Beispiel von @little_pixel

    Quellcode

    1. NSString *text = @"12345.77 (67890.08)";
    2. NSCharacterSet *set = [[NSCharacterSet characterSetWithCharactersInString:@".0123456789"] invertedSet];
    3. NSMutableArray *test = [NSMutableArray arrayWithArray:[text componentsSeparatedByCharactersInSet:set]];
    4. NSLog(@"%@", test);


    Das ist nun der Inhalt des Arrays:

    2011-06-03 14:42:34.762 INTsep[5375:207] (
    "12345.77",
    "",
    "67890.08",
    ""
    )

    Was sind das für Strings "", mit [test removeObjectIdenticalTo:@""]; werden sie nicht entfernt ?
  • Danke erstmal für die vielen Antworten.
    Bis auf die Anmerkung von ramo funktioniert die Lösung von little_pixel.

    Warum ich nicht einfach 2 Felder nehme? Nun, vielleicht möchte ich das ganze irgendwann einmal auf beliebig viele Eingaben erweitern. Derzeit würden 2 Felder zwar ihren Dienst tun, aber irgendwann sinkt auch der Bedienkomfort.

    Lg Murray
  • Murray schrieb:

    Danke erstmal für die vielen Antworten.
    Bis auf die Anmerkung von ramo funktioniert die Lösung von little_pixel.

    Warum ich nicht einfach 2 Felder nehme? Nun, vielleicht möchte ich das ganze irgendwann einmal auf beliebig viele Eingaben erweitern. Derzeit würden 2 Felder zwar ihren Dienst tun, aber irgendwann sinkt auch der Bedienkomfort.

    Lg Murray

    Wenn du beliebig viele Eingaben hast, nimmst du bitte wegen des Bedienkomforts ein Tableview mit Array-Controller.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • ramo schrieb:

    Was sind das für Strings "", mit [test removeObjectIdenticalTo:@""]; werden sie nicht entfernt ?

    Die Methode componentsSeparatedByCharactersInSet: trennt halt an jedem „Trennzeichen“ auf. Ist zwischen zwei „Trennzeichen“ kein „Nutzwert“, wird dafür ein leerer String ins Array eingefügt. Das diese Strings nicht mit der Methode removeObjectIdenticalTo: entfernt werden liegt daran, das diese Methode auf Identität prüft, also nur die Adressen der Objekte vergleicht. Entfernt bekommst Du diese leeren Strings mit folgendem Trick:

    Quellcode

    1. NSInteger index = [test indexOfObject:@""];
    2. if (index != NSNotFound)
    3. [test removeObjectIdenticalTo:[test objectAtIndex:index]];


    Michael