5
將字符串拆分爲數組的最簡單方法是什麼?例如,通過分割空間來製作一組單詞;甚至可以創建一個字符串的所有字符的數組。如何在PostScript中將字符串拆分爲數組
我能想到的唯一方法是在循環中使用search
。因爲所有的語言都有這個功能,所以恐怕我錯過了PostScript
這樣做的功能。
將字符串拆分爲數組的最簡單方法是什麼?例如,通過分割空間來製作一組單詞;甚至可以創建一個字符串的所有字符的數組。如何在PostScript中將字符串拆分爲數組
我能想到的唯一方法是在循環中使用search
。因爲所有的語言都有這個功能,所以恐怕我錯過了PostScript
這樣做的功能。
您在search
運營商的正確軌道上。它的目的是執行文本字符串搜索和匹配。下面是在PostScript Language Reference Manual發現search
操作總結:
search string seek search post match pre true (if found)
string false (if not found)
looks for the first occurrence of the string seek within string and
returns results of this search on the operand stack. The topmost
result is a boolean that indicates if the search succeeded.
If search finds a subsequence of string whose elements are equal
to the elements of seek, it splits string into three segments:
pre, the portion of string preceding the match; match, the portion
of string that matches seek; and post, the remainder of string. It
then pushes the string objects post, match, and pre on the operand
stack, followed by the boolean true. All three of these strings are
substrings sharing intervals of the value of the original string.
If search does not find a match, it pushes the original string
and the boolean false.
Example:
(abbc) (ab) search ==> (bc) (ab) () true
(abbc) (bb) search ==> (c) (bb) (a) true
(abbc) (bc) search ==>() (bc) (ab) true
(abbc) (B) search ==> (abbc) false
%!
%(string) (delimiter) split [(s)(t)(r)(i)(n)(g)]
/split { % str del
[ 3 1 roll % [ str del
{ % [ ... str del
search { % [ ... post match pre
3 1 roll % [ ... pre post match %ie. [ ... pre str' del
}{ % [ ... str
exit % [ ... str %% break-from-loop
}ifelse
}loop % [ ...
] % [ ... ]
} def
(string of words separated by spaces)()split ==
%-> [(string) (of) (words) (separated) (by) (spaces)]
(string.of.words.separated.by.dots)(.)split ==
%-> [(string) (of) (words) (separated) (by) (dots)]
我得在這裏用我的回答循環搜索的例子:http://stackoverflow.com/a/5846955/733077 –