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

  • calicoJake

    calicoJake

    29 EKİM 2007
  • Friday Night Cranks

    Friday Night

    27 Mayıs 2007
  • TechBalance

    TechBalance

    12 HAZİRAN 2011