我正在尝试检查字符串是否等于引号("
)。但是,string.equals(""")
不起作用,因为它认为我有一个额外的引号。如何检查字符串是否等于引号?
答案 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
*
*/
}