SORU
8 Aralık 2010, ÇARŞAMBA


java bir dize bayt?

Eğer bir Dize varsa javaxbunu nasıl dize bayt sayısını hesaplayabilir miyim?

CEVAP
8 Aralık 2010, ÇARŞAMBA


Bir dize listesikarakterler(kod noktaları gibi). Bayt dize temsil etmek için alınırbayt dönüştürmek için kullanabileceğiniz tamamen bağlıdır.

Bu aşağıdaki gibi bir bayt dizisi dize dönüp boyutuna bak o zaman dedi

// The input string for this test
final String string = "Hello World";

// Check length, in characters
System.out.println(string.length()); // prints "11"

// Check encoded sizes
final byte[] utf8Bytes = string.getBytes("UTF-8");
System.out.println(utf8Bytes.length); // prints "11"

final byte[] utf16Bytes= string.getBytes("UTF-16");
System.out.println(utf16Bytes.length); // prints "24"

final byte[] utf32Bytes = string.getBytes("UTF-32");
System.out.println(utf32Bytes.length); // prints "44"

final byte[] isoBytes = string.getBytes("ISO-8859-1");
System.out.println(isoBytes.length); // prints "11"

final byte[] winBytes = string.getBytes("CP1252");
System.out.println(winBytes.length); // prints "11"

Görüyorsunuz, hatta basit bir "ASCII" dize gösterimine bayt farklı numara, kullanılan bağlı olabilir. İlgilendiğiniz hangisi sizin durumunuzda, getBytes() bağımsız değişkeni olarak kullanın. Ve UTF-8 temsil ettiğini varsayarak tuzağına düşmeyinherbu da doğru değil gibi: tek bir bayt, karakter olarak

final String interesting = "\uF93D\uF936\uF949\uF942"; // Chinese ideograms

// Check length, in characters
System.out.println(interesting.length()); // prints "4"

// Check encoded sizes
final byte[] utf8Bytes = interesting.getBytes("UTF-8");
System.out.println(utf8Bytes.length); // prints "12"

final byte[] utf16Bytes= interesting.getBytes("UTF-16");
System.out.println(utf16Bytes.length); // prints "10"

final byte[] utf32Bytes = interesting.getBytes("UTF-32");
System.out.println(utf32Bytes.length); // prints "16"

final byte[] isoBytes = interesting.getBytes("ISO-8859-1");
System.out.println(isoBytes.length); // prints "4" (probably encoded "????")

final byte[] winBytes = interesting.getBytes("CP1252");
System.out.println(winBytes.length); // prints "4" (probably encoded "????")

(Eğer bir karakter kümesi bağımsız değişken bulunur musun eğer, platformun unutmayınvarsayılan karakter kümesikullanılır. Bu bazı bağlamlarda yararlı olabilir, ama genel olarak varsayılan bağlı olarak kaçının ve her zaman kodlama/kod çözme gerekli olduğunda açık bir karakter kümesi kullanmak gerekir.)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BSA

    BSA

    9 NİSAN 2012
  • Kyler Briskey

    Kyler Briske

    20 ŞUBAT 2011
  • POGProductionz

    POGProductio

    27 NİSAN 2012