这可能已经回答了其他问题,但是如何获得int值的字符值?
具体来说,我正在从tcp流中读取一个,读者.read()方法返回一个int.
我如何从中得到一个字符?
ATo*_*ras 144
也许你要求:
Character.toChars(65) // returns ['A']
Run Code Online (Sandbox Code Playgroud)
更多信息: Character.toChars(int codePoint)
将指定字符(Unicode代码点)转换为存储在char数组中的UTF-16表示形式.如果指定的代码点是BMP(基本多语言平面或平面0)值,则生成的char数组与codePoint具有相同的值.如果指定的代码点是补充代码点,则生成的char数组具有相应的代理对.
小智 105
这取决于"将int转换为char"的含义.
如果您只想在int中强制转换值,可以使用Java的类型转换符号来强制转换它:
int i = 97; // 97 is 'a' in ASCII
char c = (char) i; // c is now 'a'
Run Code Online (Sandbox Code Playgroud)
如果你的意思是将整数1转换为字符'1',你可以这样做:
if (i >= 0 && i <= 9) {
char c = Character.forDigit(i, 10);
....
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 74
如果您尝试将流转换为文本,则需要了解要使用的编码.然后,您可以将一个字节数组传递给String构造函数并提供一个Charset,或者使用InputStreamReader相应的Charset字符串.
如果您想要ISO-8859-1,只需直接从流中读取字节,只需转换int为char仅适用.
编辑:如果您是已经使用了Reader,然后浇注的返回值read()来char是去(检查它是否是-1或不是之后),以正确的方式...但它通常更有效,更方便的调用read(char[], int, int)来读的一整块一次发短信.不要忘记检查返回值,以查看已读取的字符数.
Rya*_*son 29
如果你想简单地将int 5转换为char'5':(仅适用于整数0 - 9)
int i = 5;
char c = (char) ('0' + i); // c is now '5';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
366497 次 |
| 最近记录: |