OCLOperators split
No edit summary
No edit summary
Line 1: Line 1:
<message>Write the content here to display this box</message>
<message>Write the content here to display this box</message>
In OCL, the String split function gets expects a char - but OCL defaults single characters to [[String]]. To solve this, do this:
In OCL, the String split function expects a char - but OCL defaults single characters to [[Documentation:String|string]]. To solve this, do this:
  SomeString.split('X'.toCharArray)
  SomeString.split('X'.toCharArray)
This OCL SomeString.split('X') will give you the error: ''31:System.String does not conform to Collection(System.Char)''
This OCL <code>SomeString.split('X')</code> will give you the error: ''31:System.String does not conform to Collection(System.Char)''


An example of creating a <code>Collection(Part1:System.String+Part2:System.String)</code> which is a [[tuple]] that you can iterate to - for example, do search and replace:
An example of creating a <code>Collection(Part1:System.String+Part2:System.String)</code> which is a [[tuple]] that you can iterate to - for example, do search and replace:

Revision as of 05:41, 6 January 2025

This page was created by Hans.karlsen@mdriven.net on 2017-05-02. Last edited by Stephanie@mdriven.net on 2025-02-10.

In OCL, the String split function expects a char - but OCL defaults single characters to string. To solve this, do this:

SomeString.split('X'.toCharArray)

This OCL SomeString.split('X') will give you the error: 31:System.String does not conform to Collection(System.Char)

An example of creating a Collection(Part1:System.String+Part2:System.String) which is a tuple that you can iterate to - for example, do search and replace:

'A, B;
X, Y'.Split(';'.toCharArray)->collect(pair | pair.Split(','.toCharArray)->at(1), pair.Split(','.toCharArray)->at(2))
RGB := '241, 55, 45'; '#' + RGB.split(','.toCharArray)->
  collect(s|Integer.parse(s))->
    collect(i|i.toString('x'))->asSeparatedList('')

If you want to do the reverse, look at asSeparatedList.