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

  • André Frizzo

    André Frizz

    16 Aralık 2006
  • Jack Vale Films

    Jack Vale Fi

    8 ŞUBAT 2007
  • soyacincautv

    soyacincautv

    14 NİSAN 2010