当前位置: 首页 > 面试题库 >

Java中的最后一个字符

周墨一
2023-03-14
问题内容

以下代码段发出编译时错误。

char c = 'c';
char d = c + 5;

第二行的错误是:

possible loss of precision
  required: char
  found:    int

该错误消息基于NetBeans IDE。

如下c声明该字符时final

final char c = 'c';
char d = c + 5;

编译时错误消失。

与最终字符串的情况无关

什么是final修改有所作为吗?


问题答案:

原因是JLS#5.2(分配转换)如此表示:

如果该表达式是类型为byte,short,char或int的常量表达式(第15.28节),则当变量的类型为byte,short或char且常量表达式的值时,可以使用缩小的原始转换。用变量的类型表示。

在您的示例中,char c = 'c';不是一个常数,而是一个常数final char c = 'c';

基本原理可能是加法运算符+首先将其操作数转换为整数。因此,除非一切都恒定,否则该操作可能会溢出,在这种情况下,编译器可以证明没有溢出。



 类似资料:
  • 如果字符计数超过200,我正在尝试删除UIText字段中的最后一个字符。但它没有效果:

  • 问题内容: 一个Java String变量,其值为 我要删除最后四个字符,即。我可以使用哪种方法进行拆分。 问题答案: 我认为您想删除最后 五个 字符(“。”,“ n”,“ u”,“ l”,“ l”): 请注意,您需要如何使用返回值-字符串是不可变的,因此(和其他方法)不要更改现有字符串-它们将返回对具有适当数据的 新 字符串的引用。 或更安全一点: 但是,我会尝试进一步解决该问题。我的猜测是,您

  • 问题内容: 在互联网上浏览后,我来了。 假设我已经制作了一个文本文件,内容为: 好吧,我想从此文本文件中删除最后一个字符(在本例中为)。 因此,现在文本文件应如下所示: 但是我不知道该怎么做。 我所需要的或多或少是对HDD上文本文件的单个退格功能。 这需要在Linux上工作,因为这就是我正在使用的。 问题答案: 用于从末尾寻找1个位置,然后用于删除文件的其余部分: 这对于单字节编码工作正常。如果您

  • 问题内容: 在Java中获取字符串的最后一个单词的最简单方法是什么?您可以假设没有标点符号(仅字母字符和空格)。 问题答案:

  • 问题内容: 当您必须遍历一个集合并用分隔符分隔每个数据的字符串时,总是总是在末尾有一个额外的分隔符,例如 给出类似以下内容: serverId_1,serverId_2,serverId_3, 我想删除StringBuilder中的最后一个字符(不进行转换,因为在此循环之后我仍然需要它)。 问题答案: 其他人指出了该方法,但这是另一种替代方法: 或者,使用Guava中的类:) 从Java 8开始,

  • 我需要一点帮助来查找字符串中最后一个大写字符的最后一个索引 我一直在使用regex这样做。 它怎么会一直返回-1而不是B的索引7 代码突出显示在下面 有没有人对如何解决这个问题有什么建议?