Hỏi về nhận dạng số điện thoại gọi đến

Chào mọi người, em đang làm 1 app gọi điện. đã lấy đc danh sách cuộc gọi từ call log và danh bạ của máy. nhưng có vấn đề là nếu như 1 số liên lạc trong danh bạ đc lưu ở dạnh +84 98xxxx còn số nhận đc từ call log thì là 098xxx, vậy làm sao để so sách và nhận biết số gọi đến có ở trong danh bạ hay ko. có thể làm bằng cách khá hard core là tách chuỗi string để so sánh, nhưng nếu như người dùng ở nước khác có mã vùng và dùng số đt > hoặc < 10 số thì ko so sánh vậy đc. Mọi người giúp em tìm giải pháp với ạ

Cũng là tách, nhưng tách từ đầu chuỗi, dựa vào quy luật mã đt quốc gia ở đây: https://en.m.wikipedia.org/wiki/List_of_country_calling_codes

2 Likes

Bạn chịu khó tìm toàn bộ mã quốc gia rồi add nó vào 1 cái list dạng như cái trong link này rồi sau đó đem nó vào 1 cái hashmap với key là mã vùng, value là số điện thoại tương ứng

Khi gặp một số bắt đầu bằng dấu “+” thì ta tách phần mã vùng ra rồi gọi cái hashmap trên get( “mã vùng” ) để nó trả về số điện thoại tương ứng để ta convert nó rồi so sánh trong danh ba.

Theo mình là giải quyết như thế còn chuyện làm thế nào để get mã vùng thì mình không rành, nếu có dấu space ở giữa mã vùng và số điện thoại thì có thể dùng split, substring gì đó. còn nếu dính liền giữa mã vùng và số điện thoại thì chắc mình chịu. Tại mã vùng có từ 1 - 3 số.

2 Likes

vâng em cảm ơn ạ, bác comment ở trên đã gửi link quy luật mã vùng rồi. em sẽ làm theo cách này ạ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?