jayjayswal
10/23/2019 - 10:33 AM

String Replacer

package main

import (
	"fmt"
	"strings"
	"time"
)

//func main() {
//	value := "bird, cat and fish"
//
//	// Create replacer with pairs as arguments.
//	r := strings.NewReplacer("bird", "dog",
//		"cat", "lion",
//		"fish", "monkey")
//
//	// Replace all pairs.
//	result := r.Replace(value)
//	fmt.Println(result)
//}

func main() {
	original := "cat and dog"
	// Create Replacer (excluded from benchmark time).
	r := strings.NewReplacer("cat", "car",
	"and", "or",
	"dog", "truck")

	t0 := time.Now()

	// Version 1: use Replacer.
	for i := 0; i < 1000000; i++ {
	result := r.Replace(original)
	if result != "car or truck" {
	fmt.Println(0)
	}
	}

	t1 := time.Now()

	// Version 2: use Replace calls.
	for i := 0; i < 1000000; i++ {
	temp := strings.Replace(original, "cat", "car", -1)
	temp = strings.Replace(temp, "and", "or", -1)
	result := strings.Replace(temp, "dog", "truck", -1)
	if result != "car or truck" {
	fmt.Println(0)
	}
	}

	t2 := time.Now()

	// Results.
	fmt.Println(t1.Sub(t0))
	fmt.Println(t2.Sub(t1))
}