使用 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() 查找空格、换行符和制表符的主要内容,如果未能解决你的问题,请参考以下文章

请问notepad++如何将换行替换成其它符号?

html 使用Liquid / Siteleaf简化HTML缩小。剥离所有换行符,制表符和额外空格。

html 使用Liquid / Siteleaf简化HTML缩小。剥离所有换行符,制表符和额外空格。

正则表达式怎么解决空格和换行啊??

Java如何去除字串中的空格、回车、换行符、制表符

SQL替换制表回车换行符和首尾空格