检查字符串是否等于引号

时间:2014-05-06 00:07:14

标签: java

我正在尝试检查字符串是否等于引号(")。但是,string.equals(""")不起作用,因为它认为我有一个额外的引号。如何检查字符串是否等于引号?

4 个答案:

答案 0 :(得分:12)

str.equals("\"");

\用作转义字符,告诉编译器下一个字符是按字面解释的。在这种情况下,它会导致"被解释为字符串中的字符而不是结束引号。 \"用于表示"

为了使用空字符串更安全,您还可以:

"\"".equals(str);

如果str为空而不是抛出NullPointerException,则返回false。

答案 1 :(得分:1)

使用转义字符\。这让它知道下一个字符应该作为文本读取而不是由编译器解释。 string.equals("\"")可以使用。

答案 2 :(得分:1)

string.equals("\"")会奏效。这个" \"作为转义字符。

答案 3 :(得分:-1)

请阅读以下有关“转义序列”的文章。

http://en.wikipedia.org/wiki/Escape_sequences_in_C

这是Java中的一个小方法:

private boolean equalsDoubleQuote(String string)    
{
    /*
     *  The compiler will not be able to read three double-quote characters in 
     *    align.
     *  In this case, you use a the back-slash character.
     *  It will 'escape' the character after it, allowing the compiler to
     *    read it properly
     */
    return string.equals("\"");
}

以下封装将不起作用,因为编译器将找到第一个*/并在那里停止块注释,期望以下文本为代码。

这显然不是最好的比较(因为你无法转义字符串,*/)。这个概念应该是清楚的。

void example()
{
    /*
     * 
     * What does the compiler do when I place
     * 
     *         a */ right here 
     *   
     */
}