Антоан обнови решението на 23.10.2015 00:50 (преди над 2 години)
+package main
+
+import "strings"
+
+func ExtractColumn(logContents string, column uint8) string {
+ lines := strings.Split(logContents, "\n")
+ numLines := len(lines)
+ var result []string
+
+ for i := 0; i < numLines; i++ {
+ result = append(result, ProcessLine(lines[i], column))
+ }
+
+ return strings.Join(result, "")
+}
+
+func ProcessLine(line string, column uint8) string {
+ separated := strings.SplitN(line, " ", 4)
+
+ if len(separated) == 1 {
+ return ""
+ }
+
+ result := []string{strings.Join(separated[:2], " ")}
+ result = append(result, separated[2:]...)
+ return result[column] + "\n"
+}
Харесвами че ползваш strings.Join
, а не конкатенираш стрингове постоянно, НО:
- последните три реда на
ProcessLine
са ненужно сложни, объркващи и може да правят по-малко - 4 е магическо число