Teilungszeichenfolge nur beim ersten Auftreten eines Trennzeichens

8

Ich möchte einen String beim ersten Auftreten von teilen ..

julia> a = "x1.y1.xyz22"
"x1.y1.xyz22"

julia> split(a,".")
3-element Array{SubString{String},1}:
 "x1"   
 "y1"   
 "xyz22"

Wie ist es in Julia möglich, einen String nur einmal zu teilen, um zu erhalten: "x1"
"y1.xyz22"?

Vielen Dank im Voraus,

user977828
quelle

Antworten:

3

Verwenden Sie das limitSchlüsselwort.

Für diese Art von Fragen können Sie auch die Inline-Dokumentation effizient verwenden. Geben Sie einfach ?split(oder eine andere Funktion oder einen anderen Typ) in die Konsole ein, um eine nette Erklärung der Funktion, ihrer Argumente und häufig Verwendungsbeispiele abzurufen. In diesem Fall:

help?> split
search: split splitext splitdir splitpath splitdrive rsplit splice! displaysize @specialize @nospecialize

  split(str::AbstractString, dlm; limit::Integer=0, keepempty::Bool=true)
  split(str::AbstractString; limit::Integer=0, keepempty::Bool=false)

  Split str into an array of substrings on occurrences of the delimiter(s) dlm. dlm can be any of the formats allowed by findnext's first argument (i.e. as a string, regular expression or a function), or as a single character or collection of characters.

  If dlm is omitted, it defaults to isspace.

  The optional keyword arguments are:

    •    limit: the maximum size of the result. limit=0 implies no maximum (default)

    •    keepempty: whether empty fields should be kept in the result. Default is false without a dlm argument, true with a dlm argument.

  See also rsplit.

  Examples
  ≡≡≡≡≡≡≡≡≡≡

  julia> a = "Ma.rch"
  "Ma.rch"

  julia> split(a,".")
  2-element Array{SubString{String},1}:
   "Ma"
   "rch"

  ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

  Splits an HyperRectangle into two along an axis at a given location.
Antonello
quelle
7

Das limitSchlüsselwortargument legt die maximale Anzahl von Blöcken im Ergebnis fest:

julia> split("abc.de.fg.hij.k", "."; limit=2) # split at most once
2-element Array{SubString{String},1}:
 "abc"        
 "de.fg.hij.k"

julia> split("abc.de.fg.hij.k", "."; limit=3) # split at most twice
3-element Array{SubString{String},1}:
 "abc"     
 "de"      
 "fg.hij.k"
David Varela
quelle