java - 如何检查字符是否正确

标签 java boolean character

我有一堆字符,想要删除所有不是“#”“。”的内容“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
}

关于java - 如何检查字符是否正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15113785/

相关文章:

java - 这个 JApplet 有问题,不确定它为什么不工作

javascript - boolean 问题

c++ - 当另一个线程可能设置它(最多一次)时,可以读取共享 boolean 标志而不锁定它吗?

网格中的 Python 对象

javascript - 将字符串中的相同字符替换为数组,但每次出现时都使用下一个条目

java - Spring Hibernate - FindByObject CrudRepository

java - 使用 SAX 进行 XML 解析 : how to handle html as text within xml-tags

perl - 为什么可以在 boolean 上下文中评估 `defined $x && $x`?

unicode - 清除不可见字符的源代码文件

java - 尝试使用资源 JDBC 查询