Java 字符串中的特殊字符#
我有一个字符串tmp,如下所示Java 字符串中的特殊字符#,java,string,special-characters,Java,String,Special Characters,我有一个字符串tmp,如下所示 <a href="#" class="quickLinks" id="linkQL">Quick Links</a> 我想知道有一个#after href=。。如果(tmp.indexOf(‘#’)==8)我想这样做,但我不能,我想这是因为#是一个特殊字符var tmp=''tmp.indexOf(“#”)返回9,这是预期结果 要测试#是否遵循href,您可以简单地执行以下操作: if (input.contains("href
<a href="#" class="quickLinks" id="linkQL">Quick Links</a>
我想知道有一个#after href=。。如果(tmp.indexOf(‘#’)==8)我想这样做,但我不能,我想这是因为#是一个特殊字符var tmp=''代码>
tmp.indexOf(“#”)代码>
返回9,这是预期结果 要测试#是否遵循href,您可以简单地执行以下操作:
if (input.contains("href=\"#\""))
不需要涉及正则表达式,哈希字符在java中并不特殊,但双引号字符需要转义。试试正则表达式
boolean matches = s.matches(".+href\\s*=\\s*['\"]#['\"].+");
如果要检查href
属性是否包含#
,请使用HTML解析器,如
如果您真的想检查ahref
之后的行中是否有a#
,您可以使用-但我怀疑这不是您想要的。这听起来很适合正则表达式。顺便问一下,Java字符串文本中的#
没有什么特别之处。你说的“我不能”是什么意思?tmp.indexOf(“#”)应该返回9。如果您确实想检查字符串#
是否位于href
字符串之后的任何位置(例如,在href之后的id
属性中),则可以使用正则表达式。如果要检查#
是否在href
属性中,则应使用html解析器。单引号是有效的html,或者至少受浏览器支持。我想这取决于html的来源,取决于你对它的外观有多自信。
Document doc = Jsoup.parse(html);
String href = doc.select("a").first().attr("href");
boolean isHash = href.equals("#");