Erste Schritte Eigene charAt(i) Methode schreiben

Bitte aktiviere JavaScript!
Guten Tag,

wir hatten nun diese Woche Strings in der Vorlesung und ich brauche im Umgang mit String und char mehr Übung also habe ich mich gefragt wie kann ich eigene Methoden schreiben :) "Die gibt es zwar schon das macht aber ja nichts :)"

Somit gebe ich ja einfach jeden einzelnen Char aus meinem String aus!
Java:
        String a="Java";
        for(int i=0;i<a.length();i++) {
            char tmp=a.charAt(i);
            System.out.print(tmp);
        }
        System.out.println();
Nun habe ich mich gefragt wie die Methode funktioniert und will sie nach Programmieren doch wenn ich Ehrlich bin finde ich keinen Ansatz. Klar weiß ich wie sie Funktioniert. Sie schaut sich an jedem Index des Strings den Char an. Doch gibt es eine Möglichkeit das Objekt String zu untersuchen ohne die vordefinierten Mehtoden zu benutzen?

Also wie bekomme ich in meiner for-Schleife mein String auseinander genommen in jeden einzelnen Buchstabe OHNE vordefinierte Methoden? Geht das in Java vielleicht überhaupt nicht? Denn in C hab ich ja ein Char-Array das ich selbst schreibe und dann darauf meine Methoden schreibe :)
Ich hatte noch kein C und auch noch keine Arrays! Das weiß ich nur so :p

Kann mir da jemand vielleicht weiter Helfen?

LG
 
A

Anzeige




Vielleicht hilft dir unser Java-Tutorial hier weiter —> (hier klicken)
Java:
char[] charArray = a.toCharArray();
for (int i = 0; i < charArray.length; i++)
  System.out.print(charArray[i]);
käme dem wohl am nächsten. Ansonsten: Nein, du kommst nicht ohne weiteres ohne eine String-Methode zu benutzen an das char[] Array in einem String heran.
 
Du wirst nicht drumherum kommen, aus dem String ein char-Array zu machen (zB mit String#toCharArray() oder String#split(String) ).
 
Okay also bin ich nicht zu doof sondern es geht so einfach nicht :p

Danke für die super schnelle und Liebe Antwort von euch beiden :)

Vielleicht findet sich ja noch jemand der es anders hin bekommen hat. Ansonsten ist die Frage beantwortet :)
Ich hätte jetzt noch eine weitere Stunde dran rum gefummelt um fest zu stellen das ich nach ca. 3 Stunden kein Ergebnis erziehle :D Ja ich hab 2 Stunden damit rum Probiert :D Versuch macht Klug :p

DANKE NOCHMALS
 
Gestern Nacht ist mir noch etwas eingefallen doch das bekomme ich leider auch nicht hin.
Ich möchte sehr gerne ja meine Eigene charAt Methode schreiben. Das wollte ich über char[] charArray = a.toCharArray(); machen doch wie bekomme ich den Aufrufer in meine Methode?

also String a soll nun der Aufrufer werden! Geht das oder klappt das immer nur mit eigenen Objekten/Klassen?
Java:
    char myCharAt(int i) {
        String a="Java";
        char[] charArray = a.toCharArray();        
        return charArray[i];
    }
 
Java:
class MyString {
    private char[] characters;
    public MyString(String v) {
        this.characters = v.toCharArray();
    }

    public charAt(int i) {
        return characters[i];   
    }

    @Override
    public String toString() { return new String(characters); }
}
Der Sinn des Ganzen erschließt sich mir jedoch nicht.

Nachtrag: man sollte die Kommentare bis zum Ende lesen...
Geht das oder klappt das immer nur mit eigenen Objekten/Klassen?
Entweder übergibst Du den String an Deine Methode (die hat dann eben zwei Parameter) oder Du brauchst eine eigene Klasse. Theoretisch könntest Du den String/die Characters auch an anderer Stelle in einer Instanzvariable speichern und in myCharAt auf diese zugreifen.
 
Danke ich hab mir es auch mal angesehen wie es in der String.java gemacht wird:
Java:
   public char charAt(int index) {
        if ((index < 0) || (index >= value.length)) {
            throw new StringIndexOutOfBoundsException(index);
        }
        return value[index];
    }
So hatte ich es mir gedacht doch so einfach geht es ja nicht da wir kein Zugriff drauf haben :D
Jetzt habe ich noch eine Frage in der String.c stehen zwei includes drin den einen Finde ich aber nicht:

C:
#include "jvm.h"
#include "java_lang_String.h"
Ich finde die Datei java_lang_String.h nicht! Wieso? Und wo müssen die Dateien liegen wenn ich sie #include?

Danke wieder für eure Antwort :) Werde das aber einstellen und lieber andere Übungen mit Strings und Char machen die MEHR SINN haben :)

Wollte ja nur ÜBEN :)
 
Jetzt habe ich noch eine Frage in der String.c stehen zwei includes drin den einen Finde ich aber nicht:

C:
#include "jvm.h"
#include "java_lang_String.h"
Ich finde die Datei java_lang_String.h nicht! Wieso? Und wo müssen die Dateien liegen wenn ich sie #include?
Die haben nichts mit der Java-String-Klasse zu tun (zumindest nicht mit dem Teil, der dich interessiert), du kannst sie in Java-Code auch nicht benutzen., sondern müssest dann deine eigene JVM kompilieren...

Das was @mihe7 vorgeschlagen hat, ist die in deinem Fall passendste Variante.
 
und nochmals Danke an euch :)
Das hat fürs erste wieder alles beantwortet :)

LG
 
A

Anzeige




Hier lernst du alle wichtigen Java-Grundlagen.
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben