From c0d7adb1a1b28b6b1de9ccd95d4963a8342ccdbc Mon Sep 17 00:00:00 2001 From: ayyansea Date: Fri, 15 Nov 2024 23:15:00 +0300 Subject: feat: add Filters --- cmd/uptfs.go | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 cmd/uptfs.go (limited to 'cmd/uptfs.go') diff --git a/cmd/uptfs.go b/cmd/uptfs.go new file mode 100644 index 0000000..1bba4c4 --- /dev/null +++ b/cmd/uptfs.go @@ -0,0 +1,59 @@ +package cmd + +import ( + "bufio" + "errors" + "fmt" + "os" + "strings" + "uptfs/util/split" +) + +func Run() { + scanner := bufio.NewScanner(os.Stdin) + scanner.Scan() + inputString := scanner.Text() + + if inputString == "" { + err := errors.New("the input string is empty") + fmt.Printf("%v\n", err) + os.Exit(1) + } + + additionalDelimeters := []string{",", "."} + tokens := strings.Split(inputString, " ") + tokens = formatInput(tokens, additionalDelimeters) + + lowercaseFilter := NewLowercaseFilterWithExtraSteps() + lowercaseFilter.Greet() + + var newTokens []string + for _, token := range tokens { + newTokens = append(newTokens, lowercaseFilter.Filter(token)) + } + + tokens = newTokens + + uppercaseFilter := NewUppercaseFilter() + uppercaseFilter.Greet() + + newTokens = nil + for _, token := range tokens { + newTokens = append(newTokens, uppercaseFilter.Filter(token)) + } + + result := strings.Join(newTokens, " ") + + fmt.Println("") + fmt.Println(result) +} + +func formatInput(tokenArray []string, delimeterArray []string) []string { + for _, delimeter := range delimeterArray { + for index, element := range tokenArray { + tokenArray = split.NewArrayWithSplit(tokenArray, index, element, delimeter) + } + } + + return tokenArray +} -- cgit v1.2.3