使用 charAt() 查找空格、换行符和制表符
Posted
技术标签:
【中文标题】使用 charAt() 查找空格、换行符和制表符【英文标题】:Finding Spaces, Newlines and Tabs with charAt() 【发布时间】:2011-10-19 01:53:43 【问题描述】:我正在尝试检查当前字符位置是否有空格、换行符或制表符。空格有效,但制表符和换行符无效。想想看,我正在为那些使用转义符,而只是一个普通的空间来代替一个空间......在某个位置找到这些的正确方法是什么?
if(String.valueOf(txt.charAt(strt)).equals(" ") ||
txt.charAt(strt) == '\r' ||
txt.charAt(strt) == '\n' ||
txt.charAt(strt) == '\t')
//do stuff
【问题讨论】:
什么是txt
?如果是String
...你为什么要使用String.valueOf()
?
Brian:我怀疑是因为没有它等于抱怨类型不兼容(' '
更难输入?)
好的,它工作正常。我的代码中的其他地方有一个错误,无法正常工作。谢谢大家。
【参考方案1】:
这对我有用:
char c = txt.charAt(strt);
if (c == ' ' || c == '\t' || c == '\n' || c == '\r')
System.out.println("Found one at " + strt);
你的也可以,虽然有点难以理解。为什么它对你不起作用我不知道 - 也许字符串格式不正确?你确定你真的有标签和东西吗?
【讨论】:
更改为这种比较方法以节省成本。【参考方案2】:它应该可以正常工作,请检查您的输入字符串。此外,可以通过比较空格字符来检查空格。创建一个新的字符串对象只是为了比较是昂贵的。
【讨论】:
... 每个字符提取四次。【参考方案3】:在 android 中查看 Editable
的文档,它返回一个 char
。因此……
if (txt.charAt(strt) == ' ' ||
txt.charAt(strt) == '\r' ||
txt.charAt(strt) == '\n' ||
txt.charAt(strt) == '\t')
//do stuff
会产生预期的结果。
【讨论】:
【参考方案4】:这个正则表达式 [\s] 将完成这项工作。匹配空格,等价于[\t\n\r\f]。
【讨论】:
以上是关于使用 charAt() 查找空格、换行符和制表符的主要内容,如果未能解决你的问题,请参考以下文章
html 使用Liquid / Siteleaf简化HTML缩小。剥离所有换行符,制表符和额外空格。