Split
No edit summary
No edit summary
Line 6: Line 6:
  'A, B;
  'A, B;
  X, Y'.Split(';'.toCharArray)->collect(pair | pair.Split(','.toCharArray)->at(1), pair.Split(','.toCharArray)->at(2))
  X, Y'.Split(';'.toCharArray)->collect(pair | pair.Split(','.toCharArray)->at(1), pair.Split(','.toCharArray)->at(2))
RGB := '241, 55, 45'; '#' + RGB.split(','.toCharArray)->
<nowiki> </nowiki> collect(s|Integer.parse(s))->
<nowiki> </nowiki>  collect(i|i.toString('x'))->asSeparatedList(<nowiki>''</nowiki>)
If you want to do the reverse, look at [[OCLOperators asSeparatedList|asSeparatedList]]
[[Category:OCL]]
[[Category:OCL]]

Revision as of 19:31, 2 March 2021

In OCL the string split function gets expects a char - but ocl defaults single characters to string. To solve this you can go like 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

This page was edited 84 days ago on 02/10/2024. What links here