Джулия конвертирует String в Char или конвертирует Array {SubString {String}, 1} в char - PullRequest
3 голосов
/ 28 января 2020

Я хочу преобразовать массив подстрок в значения Char или String.

Я разделил строку, чтобы получить массив элементов в порядке

mdSplit = split(mdSub,r"[ ]+")
4-element Array{SubString{String},1}:
 "73"
 "G" 
 "T" 
 "" 

, но теперь я хочу перебрать этот массив, и если значение является символом, я собираюсь преобразовать этот символ к Char или скопируйте его, так как char пытался конвертировать и анализировать

convert(Char,string(mdSplit[2]))

Ответы [ 2 ]

3 голосов
/ 28 января 2020

Во-первых, вы можете пересмотреть, хотите ли вы действительно массив String и Char. Разве не лучше иметь массив только с одним типом элемента?

В любом случае, вы можете преобразовать SubString в String или Char следующим образом:

function string_or_char(s::SubString)
    length(s) == 1 && return first(s)
    return String(s)
end

Обратите внимание, что эта функция Тип нестабильный. Затем поместите его в массив следующим образом:

arr = Union{Char,String}[]
for i in split_string
    push!(arr, string_or_char(i))
end

В качестве альтернативы вы можете сделать свой массив следующим образом: [string_or_char(s) for s in split_string]. Но это будет нестабильный тип, и он может возвращать любой из Vector{Char}, Vector{String} или Vector{Any}.

0 голосов
/ 28 января 2020

В конце концов попал

collect(mdSplit[2])[1]
...