2011-03-16 37 views

Trả lời

47

Bạn có muốn chuyển đổi int s để char s ?:

int yourInt = 33; 
char ch = (char) yourInt; 
System.out.println(yourInt); 
System.out.println(ch); 
// Output: 
// 33 
// ! 

Hoặc bạn có muốn chuyển đổi int s để String s?

int yourInt = 33; 
String str = String.valueOf(yourInt); 

Hoặc ý bạn là gì?

14

Nếu trước tiên bạn chuyển đổi int thành char, bạn sẽ có mã ascii của mình.

Ví dụ:

int iAsciiValue = 9; // Currently just the number 9, but we want Tab character 
    // Put the tab character into a string 
    String strAsciiTab = Character.toString((char) iAsciiValue); 
1

Trong thực tế trong câu trả lời cuối cùng Chuỗi strAsciiTab = Character.toString ((char) iAsciiValue); phần thiết yếu là (char) iAsciiValue đang thực hiện công việc (Character.toString vô dụng)

Có nghĩa là câu trả lời đầu tiên là đúng char ch = (char) yourInt;

nếu trong yourint = 49 (hoặc 0x31), ch sẽ là '1'

2

Có rất nhiều cách để chuyển đổi một int để ASCII (tùy thuộc vào nhu cầu của bạn) nhưng đây là một cách để chuyển đổi mỗi số nguyên byte một ký tự ASCII:

private static String toASCII(int value) { 
    int length = 4; 
    StringBuilder builder = new StringBuilder(length); 
    for (int i = length - 1; i >= 0; i--) { 
     builder.append((char) ((value >> (8 * i)) & 0xFF)); 
    } 
    return builder.toString(); 
} 

Ví dụ, văn bản ASCII cho "TEST" có thể được biểu diễn dưới dạng mảng byte:

byte[] test = new byte[] { (byte) 0x54, (byte) 0x45, (byte) 0x53, (byte) 0x54 }; 

sau đó, bạn có thể làm như sau:

int value = ByteBuffer.wrap(test).getInt(); // 1413829460 
System.out.println(toASCII(value)); // outputs "TEST" 

... do đó về cơ bản chuyển đổi 4 byte trong số nguyên 32 bit thành 4 ký tự ASCII riêng biệt (một ký tự trên mỗi byte).

1

Trong Java, bạn thực sự muốn sử dụng Integer.toString để chuyển đổi một số nguyên thành giá trị Chuỗi tương ứng của nó. Nếu bạn đang đối phó với chỉ các chữ số 0-9, sau đó bạn có thể sử dụng một cái gì đó như thế này:

private static final char[] DIGITS = 
    {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}; 

private static char getDigit(int digitValue) { 
    assertInRange(digitValue, 0, 9); 
    return DIGITS[digitValue]; 
} 

Hoặc, tương đương:

private static int ASCII_ZERO = 0x30; 

private static char getDigit(int digitValue) { 
    assertInRange(digitValue, 0, 9); 
    return ((char) (digitValue + ASCII_ZERO)); 
} 
0

Bạn có thể chuyển đổi một số để ASCII trong java. ví dụ chuyển đổi một số 1 (cơ sở là 10) thành ASCII.

char k = Character.forDigit(1, 10); 
System.out.println("Character: " + k); 
System.out.println("Character: " + ((int) k)); 

Output:

Character: 1 
Character: 49 
Các vấn đề liên quan