Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中,(char)temp和Character.toChars(temp)以及String.valueOf(Character.toChars(temp))之间有什么区别_Java_String_Char_Character - Fatal编程技术网

在java中,(char)temp和Character.toChars(temp)以及String.valueOf(Character.toChars(temp))之间有什么区别

在java中,(char)temp和Character.toChars(temp)以及String.valueOf(Character.toChars(temp))之间有什么区别,java,string,char,character,Java,String,Char,Character,我从这些中得到了相同的结果,有什么区别?哪个更好? temp是一个int,从reader.read()读取 前两个基本相同,只是调用的是Character对象而不是基本数据类型char。第三个步骤只是另一个不需要的步骤,System.out.print将输入转换为可读的输出字符串,因此无需将字符解析为字符串 第一种方法是完成所需操作的完美方法。前两种方法基本相同,只是您调用的是Character对象,而不是原始数据类型char。第三个步骤只是另一个不需要的步骤,System.out.print将

我从这些中得到了相同的结果,有什么区别?哪个更好? temp是一个int,从reader.read()读取


前两个基本相同,只是调用的是Character对象而不是基本数据类型char。第三个步骤只是另一个不需要的步骤,System.out.print将输入转换为可读的输出字符串,因此无需将字符解析为字符串


第一种方法是完成所需操作的完美方法。

前两种方法基本相同,只是您调用的是Character对象,而不是原始数据类型char。第三个步骤只是另一个不需要的步骤,System.out.print将输入转换为可读的输出字符串,因此无需将字符解析为字符串


第一种方法是做你需要做的事情的完美方法。

通常,这三种说法都做相同的事情。当然,如果
temp
包含您刚刚使用
Reader.read()
读取的字符,并且该字符不是UTF-16代理字符,则情况就是这样。(这是否“正确”取决于默认字符编码是否支持您尝试编写的字符。)

如果
temp
包含大于
65535
的Unicode码点,则第一条语句将最终损坏码点,但第二条和第三条语句将导致输出字符的正确表示。。。模化默认字符集问题


如果
temp
包含UTF-16代理字符,那么我不太确定会发生什么。我怀疑它会起作用。但是,对
PrintStream.print(char)
的javadoc进行文本读取,就有可能导致即使是UTF-16到UTF-8的转换也会将单个代理字符视为错误。然而,这是没有意义的,除非您的读者阅读的是包含大于
65535
的Unicode码点的流。通常,这三条语句都做相同的事情。当然,如果
temp
包含您刚刚使用
Reader.read()
读取的字符,并且该字符不是UTF-16代理字符,则情况就是这样。(这是否“正确”取决于默认字符编码是否支持您尝试编写的字符。)

如果
temp
包含大于
65535
的Unicode码点,则第一条语句将最终损坏码点,但第二条和第三条语句将导致输出字符的正确表示。。。模化默认字符集问题


如果
temp
包含UTF-16代理字符,那么我不太确定会发生什么。我怀疑它会起作用。但是,对
PrintStream.print(char)
的javadoc进行文本读取,就有可能导致即使是UTF-16到UTF-8的转换也会将单个代理字符视为错误。然而,这是没有意义的,除非您的读者是以包含大于
65535

的Unicode码点的流的形式阅读您想要做什么?这样我们就可以告诉你哪种是最好的方式我只想在屏幕上显示文件内容你想做什么?所以我们可以告诉你哪种是最好的方式我只想在屏幕上显示文件内容
System.out.print((char)temp);

System.out.print(Character.toChars(temp));

System.out.print(String.valueOf(Character.toChars(temp)));