15 lines
522 B
Forth
15 lines
522 B
Forth
: stringMatching(s1, s2)
|
|
| i |
|
|
s2 isAllAt(s1, 1) ifTrue: [ System.Out s1 << " begins with " << s2 << cr ]
|
|
s2 isAllAt(s1, s1 size s2 size - 1 + ) ifTrue: [ System.Out s1 << " ends with " << s2 << cr ]
|
|
|
|
s1 indexOfAll(s2) ->i
|
|
i ifNotNull: [ System.Out s1 << " includes " << s2 << " at position : " << i << cr ]
|
|
|
|
"\nAll positions : " println
|
|
1 ->i
|
|
while (s1 indexOfAllFrom(s2, i) dup ->i notNull) [
|
|
System.Out s1 << " includes " << s2 << " at position : " << i << cr
|
|
i s2 size + ->i
|
|
] ;
|