string aufteilen und ausgeben

  • Hi, ich hab eine, ich denke mal für Könner eine sehr einfache frage, ich hab ein string und will diesen aufteilen und dann über 2 verschiedene Textviews ausgeben.Wenn ich mein programm auf dem emulator ausprobiere, wird in den textview´s aber der string nicht angezeit. Ich habe keine Ahnung wo mien Fehler seien könnte. Vielen Dank für eure Antworten/HIlfe. Hab da irgendwas Grundlegendes nicht verstanden.



  • das ist mein grundproblem bei der ganzen Sache, ich möchte einfach nur das die funktion aufteilen mit dem gegebene string ausgeführt wird. wenn ich z.b.


    ring.aufteilen();


    probiere, bekomme ich die Fehlermeldung, dass die Funktion aufteilen nicht bekannt ist.



    Vielen dank für das beantworten von meiner AnfängerAnfänger frage.

  • Hallo,
    die Methode kann sich ja nicht ungefragt selbst aufrufen und in der Art ring.aufteilen(); ohnehin nicht. Die Methode kann über ein Ereignis, einen ButtonPress oder sonstwie aufgerufen werden, aber sie muß eben aufgerufen werden und sei es auch nur einmalig wie unten in der onCreate.

  • Was genau ist denn ring? Wenn das ein String ist, dann kennt der aufteilen() natürlich nicht.
    Genau genommen dürfte es aufteilen() überhaupt nicht kennen, sofern es keine MainActivity ist…


    Dein Vorhaben funktioniert so nicht*


    Im Prinzip hast Du zwei Möglichkeiten.
    In der onCreate() am Ende einfach aufteilen() aufrufen oder das Ganze ein bisschen umbauen und eine Art teileUndSetze(String) erstellen.


    *) unter Android. Unter iOS würdest Du einfach eine Kategorie auf NSString bauen, die das kann. Wäre allerdings sinnlos, da es schon einige Funktion zum Aufteilen gibt.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • ich vermute er versucht wirklich eine methode namens "aufteilen" aufzurufen, diese methode heißt in java aber "split".
    dann musst du natürlich noch definieren zu welcher Zeit diese Split Methode aufgerufen werden soll. Entweder wie Marco schon sagte, im onCreate oder du belegst einen Button mit einem onClickListener.

  • ChampS


    Er bezieht sich auf folgendes Snippet:



    Die Methode aufteilen() gibt es, sie ist nur keine Instanzmethode von string.
    Ich denke, beim Verständnis von Instanzmethoden bzw. wem sie gehören gibt es ein paar Verständnisprobleme seitens
    gammel.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Desweiteren hat er seine global definierten TextViews nicht mit Textviews in irgendwelchen Layouts verknüpft.

    sobald die TextViews deiner Java Klasse mit einer "ReferenzID" der TextViews eines Layouts verknüpft sind, weiss dein Programm welche Java-Elemente zu welchen View-Elementen gehören. Voraussetzung ist natürlich das du mit setContentView(<Layout>); das passende Layout setzt auf denen diese Elemente definiert sind.


    Danach dann noch aufteilen(); aufrufen und schon sollte es gehen...

  • nächstes problem.


    Der code kompiliert und wenn ich die app mit dem emulator testen will, wir die app unerwwartet beendet.


    Mein Code:


    und logcat gibt den folgenden Fehler aus



    ich habe daraus gelesen, dass irgendwas mit der Initialisierung des Arrays nicht stimmt, bekam die "länge 0" aber nicht weg



    danke für eure Hilfe

  • Ich denke die Zeile " textview2.setText(parts[1]);" deiner aufteilen()-Funktion hat da das Problem, da dein Array "parts" wohl nur ein Element nach dem split hat.


    Liebe Grüße
    Thomas


    [edit]
    Sorry, vergiss es. ;)


    Muss man solch ein Array nicht vorher definieren, wie groß es ist?
    Ich nehme bei sowas immer die ArrayList, die ist dynamisch.

  • die Fehlerausgabe sagt ganz klar ...

    Code
    at com.example.endlich.MainActivity.aufteilen(MainActivity.java:43)




    und das entspricht bei ihm ...

    Java
    textview1.setText(parts[0]);


    dieser Code wirft bei mir ebenfalls einen Fehler..

    Java
    java.lang.reflect.Array parts;
    
    
      public void aufteilen() {
        String[] parts = ring.split(".");
        System.out.println(parts[0]);
        System.out.println(parts[1]);
      }


    Frag mich nicht warum, aber irgendwas ist an der split() Methode anders als bei Java. So funktioniert es...

    Java
    String[] parts = ring.split("\\.");

    Alternativ kannst du aber auch den StringTokenizer verwenden.

    Java
    public void aufteilen() {
        StringTokenizer tokens = new StringTokenizer(ring, ".");
        System.out.println(tokens.nextToken());
        System.out.println(tokens.nextToken());
      }

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!