我在表单中填充了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次)。有没有办法可以将所有这些替换语句组合在一起?
谢谢,
Ruchir
答案 0 :(得分:5)
这很简单。它将替换所有非数字值:
for (String number : contactArrayList) {
number = number.replaceAll("[^0-9]", ""); //Remove non numeric values
}
答案 1 :(得分:3)
只需使用您的最终替换声明即可。其余的可以删除。
$(".product_id").on('change', function() {
var value = parseFloat($(this).val()); // product_id
console.log('prod_id', value);
var row = $(this).closest("tr");
// then we use the product_id to grab the price using AJAX //
$.ajax({
type: 'GET',
url: 'product_prices/' + value,
success: function(data) {
var data = JSON.parse(data);
var result = data[0].price;
var price = Number(result).toFixed(2); // price
console.log('price', price);
row.data('price', price); // remember the row's current price
}
});
});
// We take the price and multiply by quantity to calculate the cost
$(".quantity").on('change', function() {
var row = $(this).closest('tr');
var price = row.data('price');
if (price) {
var quantity = parseInt($(this).val());
var num = (price * quantity);
var cost = num.toFixed(2);
row.find("input.cost").val(cost)
console.log('cost', cost);
}
});
答案 2 :(得分:1)
使用正则表达式。
String str= "Name - (132)892-0121";
str = str.replaceAll("[^\\d]*", "");
如果您只想要数字,请删除字符串中的所有非数字。