我可以改变我的字符串吗?

时间:2016-02-11 03:50:11

标签: java android arrays string arraylist

我在表单中填充了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

3 个答案:

答案 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]*", "");

如果您只想要数字,请删除字符串中的所有非数字。