2012-04-06 38 views
47

Tôi stumped về điều này và tôi cần một số đôi mắt tươi, tôi không chắc chắn lý do tại sao mã này đang làm điều này.String để char mảng Java

String string = new String(new char[] {(char) 0x01, (char) 0x02, ... ,(char) 0xFC}); 

Kết quả là tất cả những gì nó phải lên cho đến khi số cuối cùng (0xFC) nó trả về một -4, Tôi biết nó một giá trị hex, nhưng nếu tôi làm như vậy với 252 giá trị thập phân, nó mang lại cho tôi một tiêu cực là tốt. Tôi hy vọng đây chỉ là một giải pháp đơn giản, và tôi không thể nhìn thấy nó.

Cảm ơn trước.

+1

những gì bạn đang cố gắng để trở lại? – Krishna

+0

Vì vậy, bạn đang cố gắng tạo một chuỗi _from_ một mảng ký tự? –

+0

'0xFC' là số nguyên dương; loại 'char' không được ký. Các codepoint kết quả là U + 00FC - Latin nhỏ Letter U With Diaeresis. Làm thế nào bạn xuất ra chuỗi? – McDowell

Trả lời

136

Một chuỗi để char mảng là đơn giản như

String str = "someString"; 
char[] charArray = str.toCharArray(); 

Bạn có thể giải thích thêm một chút về những gì bạn đang cố gắng để làm gì?

* Cập nhật *

nếu tôi hiểu biết bình luận mới, bạn có thể sử dụng một mảng byte và ví dụ được cung cấp.

byte[] bytes = ByteBuffer.allocate(4).putInt(1695609641).array(); 

for (byte b : bytes) { 
    System.out.format("0x%x ", b); 
} 

Với đầu ra sau đây

0x65 0x10 0x29 0xf3

+0

Tôi đang cố gửi một gói có mảng byte hoặc mảng char để nhận giá trị cụ thể cho thiết bị tôi có trên mạng đã đóng của mình. Tôi đang tạo một ứng dụng từ xa. chỉ cần mảng đó trong 9 byte, để cung cấp cho các giá trị hex hoặc thập phân cụ thể. –

+0

@CodyKeasberry Tôi đã cập nhật câu trả lời – Kevin

+3

Phím tắt đẹp ở trên là "chuỗi" .toCharArray(). Nó có thể giúp bạn tiết kiệm một dòng mã. –

Các vấn đề liên quan