輸入字串格式:"18263636366,053112345678,13900001111",包含手機與座機號碼,以逗號分隔。需遍歷每個號碼並呼叫發送介面。
public class SmsBatchSender {
public void sendBatch(String phonesStr) {
if (phonesStr == null || phonesStr.trim().isEmpty()) return;
// 1. 分割並去除空白
String[] phones = phonesStr.split("\\s*,\\s*"); // 支援 "1, 2,3"
for (String phone : phones) {
if (isValidPhone(phone)) {
sendSingleSms(phone); // 實際發送邏輯
// 建議:異步發送、限流、失敗重試、記錄日誌
} else {
System.err.println("無效號碼格式: " + phone);
}
}
}
private boolean isValidPhone(String phone) {
// 簡易驗證:11位手機 或 3-4位區號+7-8位座機
return phone.matches("^(1[3-9]\\d{9}|0\\d{2,3}-?\\d{7,8})$");
}
private void sendSingleSms(String phone) {
// 對接簡訊閘道 API (HTTP/webservice)
System.out.println("發送至: " + phone);
}
}
split("\\s*,\\s*"):正則表達式匹配逗號及其前後可能的空白,比單純 split(",") 更健壯。ExecutorService) 併發發送,控制 QPS。