Έχεις μπει στη LinkLine, μια κορυφαία εταιρεία επικοινωνιών που εργάζεται για να διασφαλίζει αξιόπιστες συνδέσεις για όλους. Η ομάδα αντιμετωπίζει μια μεγάλη πρόκληση: οι χρήστες υποβάλλουν αριθμούς τηλεφώνου σε κάθε λογής μορφή, με παύλες, κενά, τελείες, παρενθέσεις και ακόμη και προθέματα. Κάποιοι αριθμοί είναι έγκυροι, ενώ άλλοι είναι αδύνατο να χρησιμοποιηθούν.
Η αποστολή σου είναι να μετατρέψεις αυτό το χάος σε τάξη. Θα καθαρίζεις τους έγκυρους αριθμούς και θα τους μορφοποιείς κατάλληλα για χρήση στο σύστημα. Παράλληλα, θα εντοπίζεις και θα φιλτράρεις όποιες μη έγκυρες καταχωρήσεις.
Η επιτυχία των λειτουργιών της LinkLine εξαρτάται από την ικανότητά σου να ξεχωρίζεις τα χρήσιμα από τα άχρηστα. Είσαι έτοιμος να αναλάβεις την πρόκληση και να κρατήσεις τις συνδέσεις να λειτουργούν ομαλά;
Καθάρισε τους αριθμούς τηλεφώνου που εισάγει ο χρήστης, ώστε να μπορούν να σταλούν μηνύματα SMS.
Το North American Numbering Plan (NANP) είναι ένα σύστημα αρίθμησης τηλεφώνων που χρησιμοποιείται από πολλές χώρες της Βόρειας Αμερικής, όπως οι Ηνωμένες Πολιτείες, ο Καναδάς ή οι Βερμούδες.
Όλες οι χώρες του NANP μοιράζονται τον ίδιο διεθνή κωδικό χώρας: 1.
Οι αριθμοί NANP είναι δεκαψήφιοι αριθμοί που αποτελούνται από έναν τριψήφιο κωδικό περιοχής του σχεδίου αρίθμησης, γνωστό ως κωδικός περιοχής, και στη συνέχεια από έναν επταψήφιο τοπικό αριθμό. Τα τρία πρώτα ψηφία του τοπικού αριθμού αποτελούν τον κωδικό τηλεφωνικού κέντρου και ακολουθεί ο μοναδικός τετραψήφιος αριθμός, που είναι ο αριθμός συνδρομητή.
Η μορφή συνήθως αναπαρίσταται ως
NXX NXX-XXXX
όπου το N είναι οποιοδήποτε ψηφίο από το 2 έως το 9 και το X είναι οποιοδήποτε ψηφίο από το 0 έως το 9.
Μερικές φορές έχουν επίσης πρόθεμα τον κωδικό χώρας (που αναπαρίσταται ως 1 ή +1).
Η αποστολή σου είναι να καθαρίσεις τηλεφωνικούς αριθμούς με διαφορετική μορφή, αφαιρώντας τη στίξη και τον κωδικό χώρας, αν υπάρχει.
Για παράδειγμα, οι παρακάτω είσοδοι
+1 (613)-995-0253613-995-02531 613 995 0253613.995.0253θα πρέπει όλες να παράγουν την έξοδο
6139950253
Σημείωση: Καθώς αυτή η άσκηση ασχολείται μόνο με τηλεφωνικούς αριθμούς που χρησιμοποιούνται σε χώρες του NANP, μόνο το 1 θεωρείται έγκυρος κωδικός χώρας.
Για απλότητα και αναγνωσιμότητα: Σκέψου να χρησιμοποιήσεις τις συναρτήσεις συλλογών της Scala αντί για τις μεθόδους String της Java.
Θυμήσου ότι στη Scala ένα String είναι επίσης σιωπηρά ένα Seq[Char], οπότε μπορείς να τις καλέσεις εξίσου εύκολα με τις μεθόδους String.
Μερικά παραδείγματα:
filter αντί για replaceAll
take, takeRight, drop, head, tail αντί για substring
Μια άλλη ιδέα που αξίζει να εξερευνήσεις είναι να μετατρέψεις το String σε List[Char] και μετά να χρησιμοποιήσεις αντιστοίχιση προτύπων με τον τελεστή ::.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Scala με 95 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.