当前位置: 首页 > 知识库问答 >
问题:

为什么字符串转换不是一种数字提升?

闾丘照
2023-03-14

Oracle指定了有关数字升级的

数字提升(§5.6)将数字运算符的操作数带到公共类型,以便可以执行操作。

如果任一操作数的类型是双,另一个转换为双。

否则,如果其中一个操作数的类型为float,则另一个操作数将转换为float。

否则,如果其中一个操作数的类型为long,则另一个操作数将转换为long。

否则,两个操作数都将转换为int类型。

Oracle指定了有关

如果只有一个操作数表达式为String类型,则在运行时对另一个操作数执行字符串转换(§5.1.11),以生成字符串。字符串转换(§5.4)仅适用于二进制运算符的一个操作数,当另一个操作数是字符串时,该操作数不是字符串。

我的问题是为什么数字促销中不包括字符串转换?如果你考虑这个代码<代码>系统。出来println(“你好”90.0F) 输出为“HELLO9090.0F”(当然不带引号)。我完全明白这是怎么回事。由于“HELLO”是一个字符串,因此当“”运算符存在时,相应的操作数90也将转换为字符串。连接发生,因此给出“HELLO90”。现在,由于“”运算符存在,相应的操作数也将转换为字符串。连接发生,给出“HELLO9090.0F”。我的意思是,为什么字符串转换不包括在数字升级的第一优先级中?如果您认为主字符串后面的所有操作数都将转换为字符串,只要存在加法运算符,那么这是有意义的。它应该作为数字推广本身的首要任务。

共有1个答案

文心思
2023-03-14

在字符串连接的上下文中,您可以看到从数字类型到字符串的转换是一种升级形式。然而,在许多情况下,只有数值类型之间的转换才是合适的,而不是其他类型的转换,并且术语数值提升用于对这些类型的转换进行分类

例如,将数字传递给期望String的方法并使转换自动生效是不可取的,因为这肯定会导致错误增加,因为人们将错误的参数传递给他们的方法和他们的方法代码仍然编译。另一方面,将int传递给期望long的方法通常是合理的,用户通常期望他们得到的结果。

所有这一切都意味着有一个特定的术语描述数值类型之间的转换,还有一个不同的术语描述其他类型的转换,这个特定的术语用于其他类型转换不合适的地方。

 类似资料:
  • 问题内容: Oracle Java Community网站上的一篇文章提供了以下方法作为示例(对于JPA Converter,但这并不相关): 将String y强制转换为String val有什么用?有正当的理由吗? 原始文章:JPA的新增功能 问题答案: 这样的转换是完全没有必要的。我可以想象那是以前 但是后来参数类型更改为,而作者只是忘了删除强制类型转换。

  • 我正在使用Schembuf在带有套接字的计算机之间更改数据。要传输数据,我使用以下内容: 然而,我注意到Protobuf无法读取任何非int类型的接收数据(它将其分配给0)。果不其然,如果我不使用套接字,但试图用相同的代码片段返回消息,则会发生相同的情况: 我还指出: 那么,为什么我不能正确地将数据转换回字符串呢?如果这是一个参考问题,为什么protobuf不能读取字符数组数据或从字符数组转换的字

  • 这应该很容易完成,但是当我尝试将字符串转换为整数时,这些命令返回错误: Android monitor返回以下错误: 提前致谢

  • 所以我是计算机科学的新手,我们被要求做的一件事是尝试创建一个程序,首先将用户输入的一个单词转换成一个数字串,a=1,b=2,z=26等等,还有一些其他的事情,因为它们是扩展,我现在不想讨论。诚然,她说她不介意我们完成它,因为这是我们今天的第一节java课程。 有鉴于此,有人能给我一些关于如何做到这一点的建议吗?我不想让一段完整的代码完全做到这一点,因为我需要学习,因此非常感谢指导之手。到目前为止,

  • JavaScript代码: PHP代码 当我向服务器发布复杂的数据结构时,最外层的数组变成了字符串。例如,JavaScript对象可以是 使用JSON.stringify(数据),这将成为 但是在做了json_decode($_POST['data'],TRUE)之后 这到底是怎么回事?为什么数组被转换为字符串?要查看完整的JSON对象和完整的PHP对象,请查看这个包含这两个对象的pastebin

  • 例如,它不是返回2,而是返回“11” 我正在从该API收集数据:https://www.hatchways.io/api/assessment/students obs(为了检索数据,我创建了一个服务:export class StudentsService{ String="https://www.hatchways.io/api/assessment/students"; 构造函数(私有htt