【问题标题】:Finding Spaces, Newlines and Tabs with charAt()使用 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:我怀疑是因为没有它等于抱怨类型不兼容(' ' 更难输入?)
  • 好的,它工作正常。我的代码中的其他地方有一个错误,无法正常工作。谢谢大家。

标签: java android


【解决方案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]。

    【讨论】:

      猜你喜欢
      • 2011-04-04
      • 1970-01-01
      • 2011-03-14
      • 2017-11-04
      • 2011-09-15
      • 2023-04-05
      • 2022-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多