J'obtiens une adresse de localisation physique d'un utilisateur et j'essaie de l'organiser pour créer une URL qui serait utilisée plus tard pour obtenir une réponse JSON de l'API Google Geocode.
Le résultat final de la chaîne URL doit être similaire à celui-ci , sans espaces:
Je ne sais pas comment remplacer les espaces blancs dans ma chaîne URL et avoir des virgules à la place. J'ai lu un peu sur les chaînes et les packages d'expressions rationnelles et j'ai créé le code suivant:
package main
import (
"fmt"
"bufio"
"os"
"http"
)
func main() {
// Get the physical address
r := bufio.NewReader(os.Stdin)
fmt.Println("Enter a physical location address: ")
line, _, _ := r.ReadLine()
// Print the inputted address
address := string(line)
fmt.Println(address) // Need to see what I'm getting
// Create the URL and get Google's Geocode API JSON response for that address
URL := "http://maps.googleapis.com/maps/api/geocode/json?address=" + address + "&sensor=true"
fmt.Println(URL)
result, _ := http.Get(URL)
fmt.Println(result) // To see what I'm getting at this point
}
Vous pouvez utiliser strings.Replace
.
package main
import (
"fmt"
"strings"
)
func main() {
str := "a space-separated string"
str = strings.Replace(str, " ", ",", -1)
fmt.Println(str)
}
Si vous devez remplacer plusieurs éléments, ou si vous devez effectuer le même remplacement encore et encore, il peut être préférable d'utiliser un strings.Replacer
:
package main
import (
"fmt"
"strings"
)
// replacer replaces spaces with commas and tabs with commas.
// It's a package-level variable so we can easily reuse it, but
// this program doesn't take advantage of that fact.
var replacer = strings.NewReplacer(" ", ",", "\t", ",")
func main() {
str := "a space- and\ttab-separated string"
str = replacer.Replace(str)
fmt.Println(str)
}
Et bien sûr, si vous remplacez à des fins de codage, comme le codage URL, alors il pourrait être préférable d'utiliser une fonction spécifiquement à cet effet, comme url.QueryEscape