&amp在Java中做什么?

bzzcjhmw  于 2023-03-11  发布在  Java
关注(0)|答案(6)|浏览(266)

我在看一段不是我写的Java代码,注意到它在一些地方包含了&amp,这是一段从中缀到后缀符号转换器的代码。
如果我把这段代码放在Eclipse中,它不喜欢这些& amp,并为它们创建错误,错误是&amp cannot be resolved as a variable
这是密码

public static String[] infixToRPN(String[] inputTokens) {
    ArrayList<String> out = new ArrayList<String>();
    Stack<String> stack = new Stack<String>();
    // For all the input tokens [S1] read the next token [S2]
    for (String token : inputTokens) {
        if (isOperator(token)) {
            // If token is an operator (x) [S3]
            while (!stack.empty() &amp;&amp; isOperator(stack.peek())) {
                // [S4]
                if ((isAssociative(token, LEFT_ASSOC) &amp;&amp; cmpPrecedence(
                        token, stack.peek()) <= 0)
                        || (isAssociative(token, RIGHT_ASSOC) &amp;&amp; cmpPrecedence(
                                token, stack.peek()) < 0)) {
                    out.add(stack.pop());   // [S5] [S6]
                    continue;
                }
                break;
            }
            // Push the new operator on the stack [S7]
            stack.push(token);
        } else if (token.equals("(")) {
            stack.push(token);  // [S8]
        } else if (token.equals(")")) {
            // [S9]
            while (!stack.empty() &amp;&amp; !stack.peek().equals("(")) {
                out.add(stack.pop()); // [S10]
            }
            stack.pop(); // [S11]
        } else {
            out.add(token); // [S12]
        }
    }
    while (!stack.empty()) {
        out.add(stack.pop()); // [S13]
    }
    String[] output = new String[out.size()];
    return out.toArray(output);
}
qnyhuwrf

qnyhuwrf1#

您正在从编码错误的网站复制粘贴代码。此&amp;应替换为与号(&)。
在HTML中,你不能简单地写&,因为它是一个转义字符。所以,在历史上,他们发明了escape sequence来表示和号,它是:&amp; .这就是网站不幸向你展示的。
所以,为了回答这个问题:&amp;&amp;应为:&&。这是逻辑AND运算符。

wbgh16ku

wbgh16ku2#

这看起来像是源文件的编码问题。
&amp;ISO-8859-1字符集中的与号字符。

kknvjkwl

kknvjkwl3#

这看起来像是对Java文件的错误编码。我只知道&&操作符,它是逻辑AND。

eh57zj3b

eh57zj3b4#

&amp;&的HTML转义版本。
应将所有&amp;替换为&

bz4sfanl

bz4sfanl5#

java&中没有,这显然是从HTML页面复制粘贴的结果。&用&替换来修复它。

dddzy1tm

dddzy1tm6#

在Java中,您可以:

  • 布尔与--〉&&
  • 按位与--〉&

问题在于代码中包含尚未成功解码的XML实体,因此&amp;表示&,就像&gt;表示>一样。

相关问题