首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >滤波算法故障

滤波算法故障
EN

Stack Overflow用户
提问于 2015-05-04 18:03:11
回答 4查看 73关注 0票数 0
代码语言:javascript
复制
public static String filterPhoneNumber(String phoneNumber) {

    Character[] characters = new Character[phoneNumber.length()];
    if (characters.length > 9)
    {
        for (int i = 0; i < characters.length; i++)
        {
            if (characters[i] != ' ')
            {
                characters[i] = phoneNumber.charAt(i);
            } else
            {
                Log.d("asd", "wrroooonggggggggg");
            }
        }
    }
    return phoneNumber;
}

我试图过滤数字中的空字符,但是当在字符串中找到两个或更多的空字符时,它只删除第一个字符。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-05-04 18:17:55

您的问题是在for-循环中增加i,当您找到一个空格时跳过它。当您在下一个循环中设置characters中的数字时,您跳过了一个条目。您必须使用两个步进变量,一个用于步进phoneNumber,一个用于characters

看起来您想返回一个筛选电话号码,但正在返回您发送的值。

可以在字符串上使用搜索和替换方法。

代码语言:javascript
复制
public static String filterPhoneNumber(String phoneNumber) {
  return phoneNumber.replaceAll(" ","");
}

下面是它的使用方式:http://runnable.com/VUfHvPvHoEdLO3id/filterphonenumber-for-java

票数 2
EN

Stack Overflow用户

发布于 2015-05-04 18:52:22

如果您使用

代码语言:javascript
复制
char[] characters = new char[phoneNumber.length()];

它起作用了。

票数 0
EN

Stack Overflow用户

发布于 2015-05-05 01:33:11

  1. 您的字符数组应该是char[]类型的
  2. 字符数组从未初始化过,因此characters[i] != ' '始终是真的(如果您修复了数组类型,否则应该抛出一个NullPointerException)
  3. 您指定了characters[i] = phoneNumber.charAt(i),但之后您从未阅读过它。

如果您的目标是删除空格,只需这样做:

代码语言:javascript
复制
public static String filterPhoneNumber(String phoneNumber) {
    return phoneNumber.replaceAll(" ", "");
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30036830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档