Ich habe eine Zeichenfolge und ich muss es als Char-Array durchlaufen. Natürlich ist die normale Methode toCharArray()
Wie kann ich eine Zeichenfolge in char [] konvertieren, ohne das Objekt zu kopieren?
String str = "Hello";
char[] charArr = str.toCharArray();
Jetzt zu verwenden, der Quellcode für ToCharArray() ist wie folgt.
public char[] toCharArray() {
// Cannot use Arrays.copyOf because of class initialization order issues
char result[] = new char[value.length];
System.arraycopy(value, 0, result, 0, value.length);
return result;
}
So Java ist ein neues Objekt im Speicher vom Typ char Erstellen von [] und dem Kopieren des String-Objekts auf das neue Objekt.
Meine Frage ist, ob es möglich ist, eine Zeichenfolge als char [] zu verwenden, ohne das Array zu kopieren. Meine Absicht ist es, Speicherplatz zu sparen. Wenn das nicht möglich ist, gibt es einen Grund dafür?
Vielen Dank im Voraus!
Eine direkte Referenz auf ein veränderbares 'char []' -Array eines Objekts, das unveränderlich sein soll, übergeben, wäre eine sehr schlechte Idee, besonders wenn das betreffende unveränderliche Objekt vom Typ 'String' ist um sicherheitsrelevante Rollen zu erfüllen. – Holger
Wenn Sie Speicherplatz sparen möchten, fragen Sie nicht nach dem Array char [] '. Du hast nicht erklärt, warum du denkst, dass du es brauchst. – Holger
Ich brauche ein Array, damit ich es per Index durchlaufen kann. Was ich jedoch nicht bemerkt habe und worauf Nicolas Filotto hingewiesen hat, ist, dass Strings einfach eine Klasse sind, die den String in einem 'char []' Array speichert. Doy! Anfänger Fehler :) –