char Array in Character KlassenArray?

sicLotus

Bekanntes Mitglied
Hallo, folgendes Problem:

Ich habe eine String und würde diesen gerne an ein Character [] array übergebn.
Wichtig ist mir hier, dass es sich wirklich um die Klasse Character handelt und nicht um den Datentyp.

Nen char[] array würde ich ja einfach über string.toCharArray() bekommen... aber wie kann ich das jetzt am besten in ein Character[] array konvertieren?

Geht sowas überhaupt?
 
(aus'm Kopp & ungetestet)
Java:
String s = "Sein oder Nichtsein, das ist hier die Frage!";
Character[] c = new Character[s.length()];
for(int i = 0; i < s.length(); i++) {
  c[i] = s.charAt(i); 
}
 
Warum muss es dann Character sein? 'ne Schleifenvariante:

Java:
		char[] arr = myString.toCharArray();
		Character[] arr2 = new Character[arr.length];
		for(int i = 0; i < arr.length; i++) arr2[i] = arr[i];
 
Java:
        String s = "tada";
        Character[] c = new Character[s.length()];
        for (int i = 0; i < s.length(); i++) {
            c[i] = Character.valueOf(s.charAt(i));    
        }
würd ich sagen
 
Wenn ich das richtig verstehe ist das, so ähnlich wie Strings, keine Klasse um Werte zu speichern .... aber ich lasse mich gerne vom Gegenteil überzeugen.

Character mit String zu vergleichen ist IMHO schon sehr weit hergeholt. Die Klasse Character ist eine Wrapper des primitiven Datentyps char, bietet einige statische Hilfsmethoden und dient zudem zum generischen Einsatz von chars.
Ansonsten müsstest du deine Aussage etwas präzisieren 😉
 
Danke an euch, die Variante von bone2 funktioniert. Die ist mit der von Landei identisch bis auf das valueOf das hat gefehlt 😉

Ist nicht die perfekteste Lösung aber immerhin klappts 🙂

Character Array muss es sein, dammit ich die Collection.rotate() aufrufen kann und das geht nur mit Listen, deswegen muss ich davor noch die Arrays.asList() aufrufen und das funktioniert scheinbar nur mit den Klassen und nicht mit den Datentypen... warum das so ist würde ich gerne mal auf deutsch irgendwo lesen :/
 
Character mit String zu vergleichen ist IMHO schon sehr weit hergeholt. Die Klasse Character ist eine Wrapper des primitiven Datentyps char, bietet einige statische Hilfsmethoden und dient zudem zum generischen Einsatz von chars.
Ansonsten müsstest du deine Aussage etwas präzisieren 😉

Haaaaaaaaaaaaaalt --- ich hab mit Strings verglichen

Also ist Character eher mit Integer zu vergleichen?

Aber wie komme ich aufgrund von dem da auf die Idee dass der Operator[] funktioniert?
 
Zuletzt bearbeitet:
@TO: google mal AutoBoxing. Dadurch ist Landei's Code sehr wohl brauchbar. Aber das hat er ja schon selbst erwähnt.

Autoboxing

@andi: jetz versteh ich garnicht mehr, was du willst 😉
@edit: naja sind halt beides Wrapperklassen von primitiven Datentypen. Ist relativ, ob diese vergleichbar sind. Die eine Klasse umfasst einen int und die andere eben einen char 🙂
 
Zuletzt bearbeitet:
Ihr Antwortet immer viel zu schnell während ich noch am korrigieren bin :-(

Da ich nur static funktions gesehen habe, musste ich ja wohl annehmen, dass Character so etwas ähnliches ist wie Strings.

Im API (Link oben) sehe ich keinen Konstruktor und erst beim dritten Hinsehen non static functions toString()

... und schon gar keinen Hinweis auf []

Wie soll sich da ein armer unbeholfener Anfänger wie ich zurechtfinden - helft mir :smoke: 😛feif: Pause macht und auf die Lösung wartet :lol:

EDIT das mit [] ist ja bullshit - ich meinet setter Methoden oder so .....
 
Es ging mir nicht um Didaktik, sondern darum, dass man die Aussage so lesen könnte, als würde mein Code nicht funktionieren.

Autoboxing beißt jeden Einsteiger früher oder später, egal ob er valueOf benutzt oder nicht...
 
@andi:

mit "jetz versteh ich garnicht mehr, was du willst" meinte ich eigentlich grad die Klasse Strings. Diese gibt es afaik nämlich nicht. Meinst du vllt Arrays? Wenn ja, ist es teils vergleichbar. Arrays bittet im Grunde einige Utility/Hilfs-Methoden (ich nenns jetzt mal so - bitte nicht hauen) zum Arbeiten mit Arrays an. Genauso macht das auch eine Wrapper aber mit dem wichtigen Unterschied, dass diese auch einen primitiven Datentyp umfasst/wrappt. Somit kann man primitive Datentypen z.B. auch in Collections einsetzen (Collections sind seit - ich glaube 1.4 - generisch implementiert und erwarten somit ausschließlich Objekte - womit ein int, char double oder whatever nicht dienen kann 🙂).
 
Sorry landei, ich wollte damit nicht sagen das deine Lösung nicht funktioniert. Ich wollte lediglich darauf aufmerksam machen das du und bone2 die gleichen Ideen hattet nur bis auf den Unterschied. Auf die Brauchbarkeit des Codes selbst hab ich jedoch keinen Bezug genommen, da ich das Autoboxing nicht kannte hatte ich mich für bone2's Variante entschieden.
 
(ich nenns jetzt mal so - bitte nicht hauen)
Das mache ich nur auf ausdrücklichen Wunsch 😀

Manchmal hab ich das Gefühlich schreibe chinesisch ???:L

Es kann sein dass es damals um Arrays ging, aber dummerweise habe ich jetzt keine Zeit mich mit der unzulänglichen Suchfunktion hier im Forum rumzuschlagen (ich hab damit noch NIE ein sinnvolles Resultat bekommen, aber das ist ein anderes Thema)

Aber es ist mir einiges klarer - wenigstens warum ich überhaupt Wrapper einsetzen soll ;-)

Aber meine Fragen sind nach wie vor offen: (Ich halte die API-Beschreibung für meine Zwecke unzulänglich - man findet nur etwas, wenn man genau weiss was man sucht ... nur muss man dann ja meist nicht mehr suchen)

Wie soll ich als Anfänger auf die Idee kommen Character zu verwenden, wenn ich in der Beschreibung KEINEN Hinweise finde,

dass sich da auch Werte zuweisen lassen? Oder wo steht der?

dass sich die Klasse sogar instanzieren lässt (Es sind keine Konstruktoren beschrieben)


Gibt es andere Quellen (online) (Ja, die Insel kenne ich - eignet sich auch nur beschränkt)

Ich hab an anderer Stelle schon mal gefragt:

Wie finde ich die ideale Klasse für ein Problem (damals gins um Map, HashMap,Vector, etc etc) da gab es mal eine Tabelle aber die scheint verschollen zu sein.
 
Zuletzt bearbeitet:
ich weiß ja nicht in welcher API du suchst aber bei mir ist ein Konstruktor für Character vorhanden:

Character (Java Platform SE 6)

Alles andere (Wrapper, AutoBoxing, Modifier, etc) muss man halt lernen. Wenn du siehst, dass eine Klasse abstract ist, kannste schonmal davon ausgehen, dass sie nicht instanziierbar ist. Wenn sie keinen Konstruktor aufgeführt hat, ist dieser eben gekapselt (z.B. mit dem modifier private). In der Regel wird dann aber genau beschrieben, wie diese Klasse instanziierbar ist (siehe z.B. NumberFormat NumberFormat (Java Platform SE 6))...

Ich verstehe deine Unruhe nicht 🙂. kommt alles mit der Zeit. Ich beweg mich in Java auch noch lange nicht so sicher, wie manch andere hier im Forum...
 
Unruhe? Mal zu meinem Arbeitsstil.

Ich bin, wenn ich nicht gerade Tests laufen lasse und Zeit für das Forum habe (also am Lernen bin), an einem produktiven Programm tätig und sollte guten Code abliefern.

Manchmal habe ich das Gefühl die Meisten sind mit lauffähigen Programmen zufrieden - ich nicht, ich will etwas gutes, wartbares, optimiertes abliefern; das ist und war schon immer mein Berufsstolz. Wenn ich etwas umsetzten muss, soll das so optimal wie möglich sein. Wenn ich das nicht tun kann ärgert mich das.

Zum Beispiel gebe ich mich nicht mit einem Array zufrieden nur weil ich damit machen kann was ich brauche, wenn dasselbe mit einer Map oder was auch immer eleganter gelöst werden kann.

Aber eben genau da fehlt eine Übersicht was für welche Anwendung optimal ist.
 
Wenn ich etwas umsetzten muss, soll das so optimal wie möglich sein. Wenn ich das nicht tun kann ärgert mich das.

geht mir genauso. Das kannst du aber nur durch Erfahrung und Übung kompensieren.
Wie gesagt, mit dem Internet hast du schon mal sehr viele Möglichkeiten (soll ja auch Betriebe geben, in denen nicht mal Netzwerkadmins Internet haben).
Zudem finde ich besitzt JAVA eine sehr mächtige und gut dokumentierte API...
 
Ich hab mich wohl wieder einma unpräzise ausgedrückt:

Die API taugt dann etwas wenn ich schon weiss welche Klasse ich brauche

Wenn ich aber nur weiss dass ich eine Klasse brauche um eine Menge Dinge zu speichern - wer hilft mir dann bei der Auswahl - die vermisste Tabelle suche ich schon seit längerem

Aber da ich nicht vestanden werde lassen wir das Thema hier lieber.
 

Zurück
Oben