Μια string στη Go είναι μια αμετάβλητη ακολουθία από bytes, τα οποία δεν χρειάζεται απαραίτητα να αναπαριστούν χαρακτήρες.
Τα κυριολεκτικά συμβολοσειρών ορίζονται μέσα σε διπλά εισαγωγικά:
const name = "Jane"
Οι συμβολοσειρές μπορούν να συνενωθούν με τον τελεστή +:
"Jane" + " " + "Austen"
// => "Jane Austen"
Κάποιοι ειδικοί χαρακτήρες χρειάζονται διαφυγή με μια ανάστροφη κάθετο μπροστά τους, όπως το \t για ένα tab και το \n για μια νέα γραμμή μέσα σε συμβολοσειρές.
"How is the weather today?\nIt's sunny"
// =>
// How is the weather today?
// It's sunny
Το πακέτο strings περιέχει πολλές χρήσιμες συναρτήσεις για την επεξεργασία συμβολοσειρών.
Για περισσότερες πληροφορίες σχετικά με τις συναρτήσεις συμβολοσειρών, δες την τεκμηρίωση του πακέτου strings.
Ορίστε μερικά παραδείγματα:
import "strings"
// strings.ToLower returns the string given as argument with all its characters lowercased
strings.ToLower("MaKEmeLoweRCase")
// => "makemelowercase"
// strings.Repeat returns a string with a substring given as argument repeated many times
strings.Repeat("Go", 3)
// => "GoGoGo"
Κοντά σου υπάρχει ένα κατάστημα ηλεκτρικών ειδών που ονομάζεται "Tech Palace". Ο ιδιοκτήτης του καταστήματος εγκατέστησε πρόσφατα μια μεγάλη οθόνη, για να τη χρησιμοποιεί για διαφημιστικά μηνύματα και για να δείχνει έναν ειδικό χαιρετισμό όταν οι πελάτες σκανάρουν τις κάρτες πιστότητάς τους στην είσοδο. Η οθόνη αποτελείται από πολλά μικρά φωτάκια LED και μπορεί να δείξει πολλές γραμμές κειμένου.
Ο ιδιοκτήτης του καταστήματος χρειάζεται τη βοήθειά σου με τον κώδικα που χρησιμοποιείται για να δημιουργεί το κείμενο της νέας οθόνης.
Για τους περισσότερους πελάτες που σκανάρουν τις κάρτες πιστότητάς τους, ο ιδιοκτήτης του καταστήματος θέλει να βλέπει στην οθόνη το "Welcome to the Tech Palace," ακολουθούμενο από το όνομα του πελάτη με κεφαλαία γράμματα.
Υλοποίησε τη συνάρτηση WelcomeMessage που δέχεται το όνομα του πελάτη ως όρισμα τύπου string και επιστρέφει το επιθυμητό μήνυμα ως string.
WelcomeMessage("Judy")
// => Welcome to the Tech Palace, JUDY
Για τους πιστούς πελάτες που αγοράζουν πολλά από το κατάστημα, ο ιδιοκτήτης θέλει η οθόνη υποδοχής να γίνει πιο φανταχτερή, προσθέτοντας μια γραμμή με αστέρια πριν και μετά το μήνυμα υποδοχής. Δεν είναι ακόμα σίγουρος πόσα αστέρια πρέπει να έχει η κάθε γραμμή, οπότε θέλει αυτό να είναι ρυθμιζόμενο.
Γράψε μια συνάρτηση AddBorder που δέχεται ένα μήνυμα υποδοχής (μια string) και τον αριθμό των αστεριών ανά γραμμή (τύπου int) ως ορίσματα.
Θα πρέπει να επιστρέφει μια string που αποτελείται από 3 γραμμές: μια γραμμή με τον επιθυμητό αριθμό αστεριών, μετά το μήνυμα υποδοχής όπως δόθηκε, και μετά άλλη μια γραμμή με αστέρια.
AddBorder("Welcome!", 10)
Θα πρέπει να επιστρέψει τα εξής:
**********
Welcome!
**********
Πριν εγκαταστήσει αυτή τη νέα οθόνη, το κατάστημα είχε μια παρόμοια οθόνη που μπορούσε να δείξει μόνο σταθερές γραμμές, τις οποίες δεν μπορούσες να ρυθμίσεις. Ο ιδιοκτήτης θα ήθελε να επαναχρησιμοποιήσει κάποια από τα παλιά διαφημιστικά μηνύματα στη νέα οθόνη. Ωστόσο, τα δεδομένα περιέχουν ήδη ένα περίγραμμα από αστέρια και κάποια άτυχα κενά. Η δουλειά σου είναι να καθαρίσεις τα μηνύματα ώστε να μπορούν να επαναχρησιμοποιηθούν.
Υλοποίησε μια συνάρτηση CleanUpMessage που δέχεται το παλιό διαφημιστικό μήνυμα ως συμβολοσειρά.
Η συνάρτηση θα πρέπει πρώτα να αφαιρέσει όλα τα αστέρια από το κείμενο και έπειτα να αφαιρέσει τα κενά στην αρχή και στο τέλος του υπόλοιπου κειμένου.
Στη συνέχεια, η συνάρτηση θα πρέπει να επιστρέψει το καθαρισμένο μήνυμα.
message := `
**************************
* BUY NOW, SAVE 10% *
**************************
`
CleanUpMessage(message)
// => BUY NOW, SAVE 10%
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Go με 34 έννοιες166 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.