Станислав обнови решението на 25.10.2015 00:10 (преди над 2 години)
+package main
+
+func ExtractColumn(logContents string, column uint8) string {
+ var start, end int
+ var output string
+ for i := range logContents {
+ if logContents[i] == '\n' {
+ end = i
+ output += ExtractColumnHelp(logContents[start:end], column)
+ start = i + 1
+ }
+ }
+ return output
+}
+
+func ExtractColumnHelp(logLine string, column uint8) string {
+ var a, b int
+ switch {
+ case column == 0:
+ a = 0
+ b = 19
+ case column == 1:
+ a = 20
+ for i := 22; i <= len(logLine); i++ {
+ if logLine[i] == ' ' {
+ b = i
+ break
+ }
+ }
+ case column == 2:
+ var count int = 0
+ for i := 0; i <= len(logLine); i++ {
+ if logLine[i] == ' ' {
+ count = count + 1
+ if count == 3 {
+ a = i + 1
+ break
+ }
+ }
+ }
+ b = len(logLine)
+ }
+
+ return logLine[a:b] + "\n"
+}
Харесва ми че си решил да го обхощаш. Смятам че може да се напише и по кратко и без да се итерира втори път по реда.
Препоръчвам ти да си пуснеш тестовете на Таня
Пуснах ги, но не мога да разбера откъде идва проблемът ...
Имаш ли все още проблем? След като говорихме на лекцията. Ако искаш, мога да редактирам тестовете на Таня и да махна тези, които смятаме за прекалено стриктни.