Струны в Юлии - PullRequest
       5

Струны в Юлии

1 голос
/ 13 октября 2019

Я играю с Джулией и попытался запустить следующую функцию. Может кто-нибудь подскажите, пожалуйста, почему я не вижу последнее слово "программирование" в терминале. Спасибо

function prnt(st)
    emptyArr = []
    emptySt = ""
    id = 1

    for char in st
        if (char != ' ' && char != '\n' && char != '\r')
            emptySt = emptySt * char
        else
            print(emptySt)
            emptySt = ""
        end
    end
end

prnt("this is programming")

1 Ответ

2 голосов
/ 13 октября 2019

Я просто добавил небольшую отладочную версию println, чтобы посмотреть, что происходит:

function prnt(st)
       emptyArr = []
           emptySt = ""
       id = 1

       for char in st
        println(char) #debug statement
           if (char != ' ' && char != '\n' && char != '\r')
               emptySt = emptySt * char
           else
               print(emptySt)
               emptySt = ""
           end
       end
   end

результат был такой:

julia> prnt("this is programming")

t
h
i
s

thisi
s

isp
r
o
g
r
a
m
m
i
n
g

добавление print(emptySt) в конце цикла работаетштраф:

function prnt(st)
       emptyArr = []
           emptySt = ""
       id = 1

       for char in st
           if (char != ' ' && char != '\n' && char != '\r')
               emptySt = emptySt * char
           else
               print(emptySt)
               emptySt = ""
           end
       end
print(emptySt) #extra print here
   end

и вот результат:

julia> prnt("this is programming")
thisisprogramming

Более простой способ сделать это - использовать функцию replace:

function prnt2(st)
    println(replace(st,r" |\n|\r"=>"")) #using a regular expression (r"")
end

. результат:

julia> prnt("this is programming")
thisisprogramming
...