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;
}我试图过滤数字中的空字符,但是当在字符串中找到两个或更多的空字符时,它只删除第一个字符。
发布于 2015-05-04 18:17:55
您的问题是在for-循环中增加i,当您找到一个空格时跳过它。当您在下一个循环中设置characters中的数字时,您跳过了一个条目。您必须使用两个步进变量,一个用于步进phoneNumber,一个用于characters。
看起来您想返回一个筛选电话号码,但正在返回您发送的值。
可以在字符串上使用搜索和替换方法。
public static String filterPhoneNumber(String phoneNumber) {
return phoneNumber.replaceAll(" ","");
}下面是它的使用方式:http://runnable.com/VUfHvPvHoEdLO3id/filterphonenumber-for-java
发布于 2015-05-04 18:52:22
如果您使用
char[] characters = new char[phoneNumber.length()];它起作用了。
发布于 2015-05-05 01:33:11
char[]类型的characters[i] != ' '始终是真的(如果您修复了数组类型,否则应该抛出一个NullPointerException)characters[i] = phoneNumber.charAt(i),但之后您从未阅读过它。如果您的目标是删除空格,只需这样做:
public static String filterPhoneNumber(String phoneNumber) {
return phoneNumber.replaceAll(" ", "");
}https://stackoverflow.com/questions/30036830
复制相似问题