Цель этой статьи — понять переменные строкового типа в программировании на Джулии и различные операции, связанные с ними.

Строки в Julia заключаются в «двойные кавычки».

  1. Объявите строковую переменную s1.
s1=”hello world”
println(s1)
print(typeof(s1)) #to check the datatype of variable
Output:
hello world
String

2. Объединение строк

s1=”hello vivek”
s2=”welcome to julia tutorial”
#using * operator
println(s1*’ ‘*s2)
#using string function
println(string(s1,’ ‘,s2))
Output:
"*": hello vivek welcome to julia tutorial
"string": hello vivek welcome to julia tutorial

3. Строковый индекс и нарезка

Индекс в типах данных Julia начинается с 1, в отличие от python, где он начинается с 0.

Во-первых, проверьте, что произойдет, если мы будем искать элемент с индексом 0.

println(s1[0])
Output:
BoundsError: attempt to access 40-codeunit String at index [0]

Stacktrace:
 [1] checkbounds
   @ .\strings\basic.jl:216 [inlined]
 [2] codeunit
   @ .\strings\string.jl:102 [inlined]
 [3] getindex(s::String, i::Int64)
   @ Base .\strings\string.jl:223
 [4] top-level scope
   @ In[4]:5
 [5] eval
   @ .\boot.jl:373 [inlined]
 [6] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)
   @ Base .\loading.jl:1196

Обычный способ поиска элементов в строке Julia:

println(“item as pos 5 is“,s1[5])
println(“item as pos 9 is“,s1[9])
Output:
item as pos 5 is o
item as pos 9 is v

Нарезка. Джулия использует ключевые слова «начало» и «конец», чтобы выбрать первый и последний элемент строки.

s1=”hello vivek welcome to julia programming”
println("first item of string s1 is:",s1[begin])
println("last item of string s1 is:",s1[end])
Output:
first item of string s1 is: h
last item of string s1 is: g
#slicing
println(s1[begin:begin+10])
println(s1[begin+6:begin+18])
println(s1[begin:end-21])                                
println(s1[begin+6:length(s1)-12])
Output:
hello vivek
vivek welcome
hello vivek welcome
vivek welcome to julia
#negative Indexing
println(s1[end-3])
println(s1[7:end-12])
println(s1[end-10:end])
Output:
m
vivek welcome to julia
programming

4.Интерполяция строк

Интерполяция — это процесс выполнения того, что является исполняемым в строке. Исполняемый файл Julia упоминается как «$».

s1=”vivek”
s2=”80"
println(“hello $s1, you scored $s2”)
Output:
hello vivek, you scored 80

5. Сравнение строк

println(cmp(“a”,”a”)) #returns 0 when output is true
println(cmp(“def”,”abc”)) #returns 1 when output is false
Output:
0
1
println(cmp('a',"a")) 
Output:
MethodError: no method matching isless(::Char, ::String)
Closest candidates are:
  isless(::AbstractString, ::AbstractString) at C:\Users\lenovo\AppData\Local\Programs\Julia-1.7.1\share\julia\base\strings\basic.jl:344
  isless(::Any, ::Missing) at C:\Users\lenovo\AppData\Local\Programs\Julia-1.7.1\share\julia\base\missing.jl:88
  isless(::Missing, ::Any) at C:\Users\lenovo\AppData\Local\Programs\Julia-1.7.1\share\julia\base\missing.jl:87
  ...

Stacktrace:
 [1] cmp(x::Char, y::String)
   @ Base .\operators.jl:467
 [2] top-level scope
   @ In[22]:2
 [3] eval
   @ .\boot.jl:373 [inlined]
 [4] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)
   @ Base .\loading.jl:1196

«одинарные кавычки» представляют тип данных char
«двойные кавычки» представляют строковый тип

6. Операции поиска строк

начинается с()

s1=”hi geeks enjoying learning julia”
println(startswith(s1,’h’)) 
println(startswith(s1,’g’))
println(startswith(s1,”hi”))
println(startswith(s1,”julia”))
Output:
true
false
true
false

заканчивается()

s1=”hi geeks enjoying learning julia”
println(endswith(s1,’a’))
println(endswith(s1,’h’))
println(endswith(s1,”julia”))
println(endswith(s1,”learning”))
Output:
true
false
true
false

startswith() и endswith() могут выполнять поиск символов и шаблонов.

findfirst() и findlast():находит вхождение элемента и возвращает позицию.

s1=”hi geeks enjoying learning julia”
#findfirst()
println(findfirst(‘j’,s1)) --> 12
println(findfirst(“geeks”,s1)) --> 4:8
#findlast()
println(findlast(‘j’,s1))  --> 28
println(findlast(‘e’,s1)) -->20
s2="hello vivek, Does vivek like julia?"
println("find vivek from first: ",findfirst("vivek",s2)) 
println("find vivek from last: ",findlast("vivek",s2))
Output:
find vivek from first: 7:11
find vivek from last: 19:23

findnext():принимает три аргумента findnext(шаблон,строка,позиция для поиска)

#findnext()
println(findnext(‘e’,s1,7))
println(findnext(‘j’,s1,findfirst(‘j’,s1)))
Output:
10
12

findprev() – принимает три аргумента findnext(шаблон, строка, позиция для поиска)

#findprev()
println(findprev(‘e’,s1,18))
Output:
10

7. Полоска струн

strip(), lstrip() и rstrip()

#strip()
println("length of string with whitespace: ",length("   vivek  "))
println("length of string without whitespace: ",length(strip("   vivek  ")))
println(strip("   vivek  "))
println(strip("sviveks",'s'))
Output:
length of string with whitespace: 10
length of string without whitespace: 5
vivek
vivek
#lstrip()
#lstrip
println("length of string with whitespace: ",length("   vivek  "))
println("length of string without whitespace: ",length(lstrip("   vivek  ")))
println(lstrip("  vivek",' '))
println(lstrip("sviveks",'s'))
Output:
length of string with whitespace: 10
length of string without whitespace: 7
vivek
viveks
#rstrip()
println("length of string with whitespace: ",length("   vivek  "))
println("length of string without whitespace: ",length(rstrip("   vivek  ")))
println(rstrip("  vivek",' '))
println(rstrip("sviveks",'s'))
Output:
length of string with whitespace: 10
length of string without whitespace: 8
  vivek
svivek

8. split() и join()

split() — sразделяет строку на массив элементов на основе разделителя.

join() — объединяет элементы массива для создания строки.

#split()
println(split("vivek#learning#julia#python",'#'))
#split the string into 3 array item
sprintln(split(“vivek learning julia and python”,’ ‘,limit=3))
Output:
SubString{String}["vivek", "learning", "julia", "python"]
SubString{String}["vivek", "learning", "julia and python"]
#join()
#join() similar to pythin join func
#join()- joins array of strings into string
l=["hello","julia","learners"]
println("joined string--> ",join(l,"##"))
Output:
joined string--> hello##julia##learners

9. substr() — для извлечения части строки

#substring()
s1="hi geeks enjoying learning julia"
println(SubString(s1,4,17))
println(SubString(s1,10,26))
Output:
geeks enjoying
enjoying learning

10. sort() —метод работает с массивом элементов для сортировки элементов по возрастанию или по убыванию. Чтобы отсортировать строку, она преобразуется в массив с помощью collect(), а затем используется sort(). применяется, а затем преобразуется обратно в строку с помощью join().

#sort() and collect()
println("output of sort -->",sort(collect("vivek")))
println("sorted array converted back to string-->", join(sort(collect("vivek"))))
println("sorted array converted back to string reverse-->", join(sort(collect("vivek"),rev=true)))
Output:
output of sort -->['e', 'i', 'k', 'v', 'v']
sorted array converted back to string-->eikvv
sorted array converted back to string reverse-->vvkie

Обобщить:

  • Строки Джулии и строковые методы.

Спасибо, что читаете мой блог и поддерживаете содержание. Благодарность всегда помогает поддерживать дух. Я буду стараться изо всех сил, чтобы продолжать придумывать качественный контент. Свяжитесь со мной, чтобы получать обновления о предстоящем новом контенте.

Продолжайте поддерживать.