Wie viele bytes hat ein string enthält?
public class ClassToTestSnippets {
private static ClassToTestSnippets ctts;
public static void main(String[] args) {
ctts = new ClassToTestSnippets();
ctts.testThisMethod();
}
public void testThisMethod() {
System.out.println("\u2014".length()); //answer is 1
}
}
Obige code druckt 1. Aber \u2014
ist E2 80 94
also 3 bytes. Wie kann ich wissen, wie viele bytes hat ein string enthält?
- Dies ist wie der Blick auf einen screenshot (keine Datei, nur das angezeigte Bild) und Fragen, wie groß die Datei ist. Die Antwort in beiden Fällen ist, dass es hängt davon ab wie es codiert ist...
- Siehe auch: stackoverflow.com/questions/9699071/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hängt. Welche Codierung Sie verwenden möchten?
Drucke 4, aber wenn ich
UTF-8
zuISO-8859-1
(zum Beispiel), es wird 2 ausgeben. Andere Codierungen können drucken, die anderen Werte (versuchenUTF-32
).Intern - es enthält (Anzahl der Zeichen) * 2 bytes, da jedes
char
in Java nimmt zwei bytes (ein normales Zeichen in Java 16 bit unicode). Die tatsächlichen bytes 0x20 und 0x14.Jedoch die Funktion "length" gibt die Anzahl der Zeichen, nicht die Anzahl der bytes.
char[]
hier, die Größe des gesamtenString
größer ist.