【发布时间】:2016-02-11 03:50:11
【问题描述】:
我有一个ArrayList 填充了表单中的字符串:
Name - (###)###-####
or
Name - ##########
我想将其保留在没有名称或连字符的表单中:
##########
我做了以下事情:
for (String number : contactArrayList) {
number = number.replace("(", "");
number = number.replace(")", "");
number = number.replace(" ", "");
number = number.replace ("+", "");
number = number.replaceAll("\\D+", ""); //Remove non numeric values
sendMessage(number, "SMS")
}
sendSMS方法:
private void sendSMS(String number, String message) {
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(number, null, message, null, null);
}
但这创建了我的字符串实例number 5 次(我知道是因为发送到该号码的任何消息都会发送 5 次)。有没有办法可以组合所有这些替换语句?
谢谢,
鲁基尔
【问题讨论】:
-
你的最后一个替换有评论说
Remove non numeric values,为什么不使用那个单一的替换? -
您提供的代码不应该创建一个字符串 5 次,也许还有其他事情发生。是否包含所有相关代码?
-
@JonnyHenly 嗯...你是对的。在按照您的建议进行操作后,它仍然会继续发送多条短信。我会更新我的问题。
-
如果我没记错的话,sendMessage() 在 for 循环中。糟糕!
-
@RuchirBaronia 您想将电话号码(没有非数值)存储回
ArrayList或其他列表吗?您现在所做的没有多大意义,在遍历整个列表后,您实际上将number设置为等于contactArrayList中的最后一个条目。
标签: java android arrays string arraylist