2010-05-31 15 views
5

Ne javascript en hakkındaki java eşdeğeri: char için döküm çünkü çalışması garanti olmadığınıJava'nın javascript'in String.fromCharCode öğesine eşdeğeri nedir?

public static String fromCharCode(int... codePoints) { 
    StringBuilder builder = new StringBuilder(codePoints.length); 
    for (int codePoint : codePoints) { 
     builder.append(Character.toChars(codePoint)); 
    } 
    return builder.toString(); 
} 

Not: aşağıdaki gibi gibi bir şey olurdu

String.fromCharCode(n1, n2, ..., nX) 

http://www.w3schools.com/jsref/jsref_fromCharCode.asp

+0

http://w3fools.com/ – oezi

cevap

16

Kod noktası değeri char (65535) üst sınırını aşabilir. char, Unicode 3.1'un henüz çıkmadığı ve henüz 65535 karakterin üzerine çıktığı karanlık Java çağlarında kuruldu.

Güncelleme: String aslında a constructor taking an int[] sahiptir doğru bu sorunu ele, (Java 1.5 beri tanıtılan, başın üstünden biliyordum etmedi). aşağıdaki gibi yukarıdaki basitleştirilmiş olabilir:

public static String fromCharCode(int... codePoints) { 
    return new String(codePoints, 0, codePoints.length); 
} 
+0

Unicode mükemmellik için 1, ama şüphe doğru codepoints Bu çoğu için çalışır gibi görünen den büyük 65536 –

+0

işleyebilir Javascript işlevi değerler. Ben çalışıyorum: yeni Dize (yeni int [] {141}, 0, 1) javascript içinde "?" ama javada değil. 141 geçersiz mi? Javascript'ten Java'ya yüklediğim bazı gizleme kodlarını ayıklamaya çalışıyorum ve bazı karakterler için tutarsız sonuçlar alıyorum. – jon077

+0

Bu, tamamen farklı bir hikaye olan karakter kodlamasına bağlıdır. JS ortamı, görünüşe göre Java ortamından farklı bir karakter kodlaması kullanıyor. En azından, yukarıdakiler UTF-8 gibi kodlayan bir Unicode karakteri için kusursuz çalışmalıdır. – BalusC

İlgili konular