ฉันได้กำหนดคลาสยูทิลิตี้เมื่อนานมาแล้วด้วยค่าคงที่ UTF_8, ISO_8859_1 และ US_ASCII
นอกจากนี้บางเวลานานที่ผ่านมา (2 + ปี) ผมได้ทดสอบประสิทธิภาพการทำงานที่เรียบง่ายระหว่างnew String( byte[], Charset )
และnew String( byte[], String charset_name )
และพบว่าการดำเนินงานหลังเป็นอย่างมากได้เร็วขึ้น หากคุณดูที่ซอร์สโค้ดคุณจะเห็นว่าพวกเขาติดตามเส้นทางที่แตกต่างกัน
ด้วยเหตุนี้ฉันจึงรวมโปรแกรมอรรถประโยชน์ไว้ในคลาสเดียวกัน
public static String stringFromByteArray (
final byte[] array,
final Charset charset
)
{
try
{
return new String( array, charset.name( ) )
}
catch ( UnsupportedEncodingException ex )
{
// cannot happen
}
}
ทำไมตัวสร้างสตริง (byte [], Charset) จึงไม่เหมือนกัน
MessageDigest#getInstance()
โดยวิธี