如何检查字符是否正确

2024-02-02

我有一堆字符,想要删除所有不是“#”“。”的内容“E”和“G”。

我尝试使用这个:

if (buffer.get(buffertest) == 'G'|'E'|'#'|'.')

但遇到了类型不兼容的问题。


这个根本问题是按位 OR 运算符和 Java 运算符优先级层次结构的错误使用。这种类型的 Java 表达式从左到右计算,并且 == 运算符优先于 |。结合起来,你的表达大致可以翻译为:

(buffer.get(buffertest) == 'G') | 'E' | '#' | '.'

表达式的第一部分buffer.get(buffertest) == 'G' evaluates to a boolean.<br> The second part of the expression'E'| '#'| '.'` 求值为 int,缩小为 char

这会导致不兼容的类型编译时错误。您可以通过以下方式扩展检查来更正代码:

char ch = buffer.get(buffertest);
if(ch == 'G' || ch == 'E' || ch == '#' || ch == '.') {
   // do something
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查字符是否正确 的相关文章

随机推荐