有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我可以更改字符串吗?

我有一个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次)。有没有一种方法可以合并所有这些replace语句

谢谢

拉希尔


共 (3) 个答案

  1. # 1 楼答案

    这很简单。它将替换所有非数值:

    for (String number : contactArrayList) {
        number = number.replaceAll("[^0-9]", ""); //Remove non numeric values
    }
    
  2. # 2 楼答案

    使用正则表达式

    String str= "Name - (132)892-0121";
        str = str.replaceAll("[^\\d]*", "");
    

    由于您只需要数字,请从字符串中删除所有非数字

  3. # 3 楼答案

    用你最后的替换语句。其余的可以移除

    number = number.replaceAll("\\D+", ""); //Remove non numeric values