From e7f258eec8f566a0da39c23f964280637e8e2a4b Mon Sep 17 00:00:00 2001 From: Daniel Hodgin Date: Fri, 5 Feb 2010 21:57:53 -0500 Subject: [PATCH] #19, rewrote trim(), added tests in examples/seneca/trim --- examples/seneca/trim/trim.pjs | 33 ++++++++ examples/seneca/trim/trim.png | Bin 0 -> 24622 bytes examples/seneca/trim/trimtest.htm | 122 ++++++++++++++++++++++++++++++ processing.js | 16 +++- 4 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 examples/seneca/trim/trim.pjs create mode 100644 examples/seneca/trim/trim.png create mode 100644 examples/seneca/trim/trimtest.htm diff --git a/examples/seneca/trim/trim.pjs b/examples/seneca/trim/trim.pjs new file mode 100644 index 000000000..a8b16836b --- /dev/null +++ b/examples/seneca/trim/trim.pjs @@ -0,0 +1,33 @@ +// Trim example +size(500,220, P3D); +background(20); +stroke(128, 128, 128); +fill(64); +rect(1, 1, width-3, height-3); + +String s1 = "normal string"; +String s2 = " extra leading spaces"; +String s3 = "extra trailing spaces "; +String s4 = " both leading and trailing "; +String[] a = { " inconsistent ", " spacing", "ok", " tab at the end "}; +String[] a2 = trim(a); + +PFont font; +font = loadFont("Arial"); +textFont(font, 14); +fill(32, 255, 0); +text("Strings", 5, 20); +text("String Arrays", 5, 120); +fill(255, 255, 255); +text("s1: |" + s1 + "|", 15, 40); +text("after: |" + trim(s1) + "|", 240, 40); +text("s2: |" + s2 + "|", 15, 60); +text("after: |" + trim(s2) + "|", 240, 60); +text("s3: |" + s3 + "|", 15, 80); +text("after: |" + trim(s3) + "|", 240, 80); +text("s4: |" + s4 + "|", 15, 100); +text("after: |" + trim(s4) + "|", 240, 100); +for(int i=0; iaKH6Ro9JBR+L6TBt!%N07X_tLKOfYp#cB_5*`w~f;y)y3hoe`WOQ5s014~gF9eX8 zjSm2bO4j1y%F0%bZjP>2j!tB<;^JgZE{+z~cIE)^Wj#mDQeEvBSMYxOR!lD3KUvOE z6$hS7RV>OMJAsCt90C1fIC;Suj!GYfq$D)aXnr_UY^;AYjtV1kB;qREK6znmP*Hf~ z_|vX;k?r#L`(IP9%_~BO)i*g!GjP4|$f+{yDxChv6=Eb9KY~UEhj;gxMFJ41oB(wA zCNpx^7fJ}=udjdr14S=fHvsWv0SO-HRmkdPeHZqIb|RLc58)pS(d(ALBM0w~4TyNf zij@K)QV{+*=`?CUJ~Uu7VQR7mC^G>@w0^%90RNo78Qu_pUNSijM1BH5hGiZu0a)<^ z)iaurl7KcVfNdc+$P2780j#oG7BWD6E6_WQj?@UiBLl1|;UVtRTTrt$5AJT)C%4ig5r{a|i(1T}khSSnwCZU^_#bdzcGKMtH6k+c7%phP3;6VFv zGYJ6s2{_=}-n@L7My;Km=8A1WHDo&JfqkPeG1+@Pn5l9S0f1dM-?>*tmL@`fepr9| z*Fx$GXe$Gx{LlAM7L8~k%|QO~y4H=;Kifza#J8`l9qjL~ejF6jGalFSd9~~}?A3a) zd+-%_zQ6m?{gWzy?Nfj>^xq%-leh9E?`9Gaf=xDm#YsQ6BE3BmFHj81nzU=vWACY8 zI>$<6M&GcNP(+9&z8|8Ve>3~J!}tUxw8IJ1+Xz8;Coq+NGKKmhM~klQ*8B4w0IoY7 z`xfcoq5Q3ac4s`^E`?vD^Qi%U3)w_x05FiCVpbn-5*~pE0Ezqn`g&2K+dh28Uf6ei zFq?fy&qiFqVpN0uV(4OsX8!M7jNVrViqVBm)f3Yju`G%ZbM&fMg(f+nGWTn=p$a;o zJsQL3_R)P0K!6q1C1F)MK%_WtwJG}z$x=VHBy~S zLx%WT&;^n=Okb)afqxWW3w#d!F8v`npixC|5xH5sy_}mcSgH_d*39igW*lyQ)~w4n zLcwURg2UM=E41}EA@LE`-XnZC_CY&V=HUUc1|CL)B-4ooifZJlVZwUNYN*bLJJXp4 z4`|E)$zB95Xb&+mV-isrZFz0QRhe?KcT^l0>j>NkP{Atwv=m9@a^Gk=Fdhc+P1rt! zY0EHDE@Q@Fv7md0iw|;BVMd6v(YD7!$~F|M&tuL@%{!=49y3;CamWx-CXKC|**3!Q zCNq*TjE3yz><{d-?-T8lU+W>}n20zR|5f`*r#f!)k>CLRfa3txJe^HcqbO5#tGqxR zgELN7tfrtvwN53h9E;;~Cht@buB=>1O<~Fcp%tFhy>;D@TL;Eg3W;Lctk(R*vGh^e z5!9^*GD;{;&`7u?9YGd89KI!i2Yy|;d?~>~6v2o(EBA-f^ur9a3`Y%Z`WE`HI0@s3 zDIZg4Qi$kT)GI1WE4M3=G;TB|)Z;1))O>2CG}zVlDi9V^t28Qeluy-&)GRCb%fl)y z%N^B)i+y!oB4Bj}fg)rP+y7S*`H${X)y0Wwz-^gw3%lALu6P0qvw|_9#x2;S~ zOVzHDsZyzuKJDVFJuk~C?UL-&c?v)k9r;MBPb+O1Hw}|>sJ5oIRfbrGt02gCSIb;! zTS8RODdExMPVEALpg?b&ts_|AvrMg7J8vFuJ7SsS(qnF@9Tc^Y3}h|}3o zfS6@u<4Q&R(}0M0iE)Z?+HP<{`+e)*B9$*IDrlxS<{erl4c$*G}U?yTu7!zgQ4Oj4}MUA7#kziJt4sc0prKUjs`sBN)t@iDeE z!Lw`~svWpU>PqtI@QHa5ghL5iL#-m#CH8gw=7P}`MaE~rmX(+ z@{PI+t_$mnu+6+lj=cA|I_$2q1EbwS(WaLW~kq=koN&YR0PG622O?{2!K^=?e*-zYWNx?G5H5a}ru1`;*cr8P( z;FWlm@SW3>YKXmr@t{4Jwj%z!Jc|5Q7GExIraPHEn;>7;hoHoScxSOna)qQ8%M;6A z7VZ<(<{^!*Lk>}`EF>v#W42B4)i63th%I8JN9wwCEA()UmgZU(JyQ|mys1^W3{&Tm zP2(H!+}W3TZ|9i(n7fHBC82U!OvKv1x~gq>8wH#_HxT!5U>HI*VXFn&B3tO~mz1i` zwbE*RyJ)-=Yy%AX#smABA#6{PG!PF$d`>r4&Oa$>v*_$J8$X8T5DDQ#MAl+&;HBaC ztN^Vb6w1DH5;$|b(p&#^8WsZ<7{a|@B96W z&{+3|284#flEsqwlk8K|y>M+rZ)T343xIZS!<(}TU?ee_BeOq42WkCrq?6?W^PmZ9yTOs<~89i4ow^;E+cLt6eaXD zmq&<~_ouMS%kguW_>9>MO)lPR;p;>#9xjXT-=)))>ACc|g0$+aZ2JVjm;4>=#oEQNBUpfHbIVKto zNdbU{tgM8n`j_>yF3+#(8ks_`+a;B%DV2;VFqrV25HXE(QGww^7N zc0%il9#19S?|RtT1Woz3A~|X(1s7_1Qfor2ThNhZwfXY%Ti}BM!o+yu#soo)&zCQ+ z&WQtK?Q#x@6bNHaM`20_%QdbuU58zVyqDh7o}|0KvK&!igZhkEu@PY)13EhRz*i7O zKkC8WS5jEGHEf`ro!OVauG8U#esnzxdetM(%FApEI)_cIDMt=?w$9dGs8 zJ>>Ewp11YI+}*+5v7AN)XJnzw+kuhQw@{k0Fv-il&z$~8ycUz`yEhLeCME(TaU18j zE%qCldU~CvBe9#C`f(#SKciTLUTzmc1-;{{2WJC2eY(7F-7|D#S;7Z99NA8lk#+hC z*O$KN!#!at4jbqP)Dbmu}zs4SwTOkSuvqFK0?u=E|?2;OhH_Po7Z4s6JEKV5XPeE%(m zkMz7H{5r7Hb+=8n>tB|-`Sz6Kz3p?q#c8|zt+{zBSCF5XdHV2X%-r1E-rgP#jpRAa z?;*|mvg>|-EQyHA4ggfJB~_BCA}BqhR^m93){QDF=_ADmwH+xcD-+p{tu5*}9#V5> zx>~DK@KKkn4~N`kKhmmepoECs8oKaKi|{t3QpqM#>7@mk~cIT#nPWsnGdH zp>?OP;xS?8w-MAl?@)D8a}>)a4qSNN?HlT(5~GGK98;n6y~s@zD9Dm>+Wy%mR>uyh z;__J;74JN)?PS((Q&v$?QByM&tr8@pk&={LT3K0HTGG(e{A2R9;w@t4Pz^F*e9w?0 zX95n81zaMb$pFBL&GS1z0r=BH!V?>2Aj5a~%GpW60O*_miU`asfDJkUj50q7CmrFJ z;b^rKWets`#R@f77nk{k1w-%i=7*a@D1Uu*_1oPr5NRJz)yfnFoqhm5Ozqn->u?)L zO*#BNMWc0AD|MCh=P=rPG}JPQ65XoUA^Zw&;j&w!dZKUNjA*8p+p*emb+IMaZD)ns zuh?F2MiTbl&!L8U=UMlNj4!SP{P`7{DsA|Az?q>2%F}+7o#PbpRx!f(`%tvW+6EQr zQPw-e5acJkb(O|*MQ_<_oQn4DT^=a*uQZHU@$U+%XQ`o+} zlAv@6cImiq&Iuzv>gl8&i<|1jqxRfVVm4Xf^LMNWGhfqsav%F7Bxz`*P(`4^Ob+9I zTi^fsi0OPuW)9;O>_f1Yxgc$GWR*FzRy}};JFTzeXQi887*Huj2M-_~-@_=2P=C#b z42LYwc?a%_qgwZam>r>Adx8;0iP33hIaE%Ip*f3#u~C4N)6+OoVIjxu?<Z*66tjO|w$GzC7Y(*AShe zx~P{~LW-joEpZESFYjj4|Ka$^q#ttb_UH~-X7{epLzu&UQ(0MKNtsOK9V8AQfev6_ zm*r#3h>-h2`6Fgpspx90h@Rg9qdhr75LUV)d70yX5ewo=L#V#u^U(75z#8qwVJxqn zAhTkB7xFiZHE&~SSN)AS)P&rz?eN^+ZC7DJd?V|~cnJ$0ouLh%9Y*Ww$cd7R7Dsc3 zL*tOkb}CE@F1IE_v+Y)fLl?tOC$}j#elD}0oYD2gQz0LIyY*$?!1Y=gpIw}43m8Ud zYk+xLohnUU+l4V!Xwi%;gbosox|k?rSn-n#C8P=+^U+XKTUcGSQc0dUjEag{z$=H@ zSW>3LwmN+m={^`fI2|?Wke9;h zL5Mx4L*oc5=1|PCPF_S~h3^(dGkVkm(Q@x9(Y`~*D$%YrvrKbLz0I5xEzjZpk!E*hskhB6eofVLX!v`cX6Q?RgJUiN8<3BSSb1*Gp%0a_02>S?MvMiU zx%z>6_Np8$h0AX1TIk_rax@HKN&o+pL=KopAQVcgstA0 zs4p%)&}crf{bdh@04OXfx*MQVSa^M_b_B>M`mLRB?Cl|dFUH5n?%E@Ka2DOXcyH8o zNxq}jM-Hdr?;g#`?TSqEHv#CXB58 ziFjO7ia#)~2M~I}K0esAwEip&?kC`?IFA?-Xjtu-= zo7*&nyHr0o_IXp^{8o;HhcN$MvaFA1!_;0o)%-eqReH)(*kTL)lzRa|wWZ+hveb97 zFCj+Z(BSmzI)( zg$xiOo88=;%#n)KyA2ENiHwd$ZfOpM3}_jq;p43iC-bL)49~}434jhis%Gm7*r7~_4NV>IcI z`uK1BE?jP^3ssZYXXua#_%n@rqxX%sO~dT5g!GZq`Vq~}QACS*R$8K8Vi`5S2QOfq z>JItH+O1^4@a<9SLTk{J%(20jnu?BGL1R%wq@*fT0$o%C!VEwcIeSjilm5myS5QGe z0hf&6a3eQ?No>Pf?jHL%7N%?|Ap=Fe_`#CQz!@7m1PM!J^qXAa+q}o$qm{DWv{|PI zwgaHzD)FZrS>D(cXlL8PB3jAF$CYTkD2q9gZ%9UA=XN7~>xkCK7YgidpVzoEP}$cK z*skE#TIGc2_tQm4g?_D0JINQLoi(01tZ`=(rxHqiT2tX#8PjF-`}y;)SD3%|`Xg%c zHAng-5gXE`tEs%hwwMy^**LYr!aLM3-yCXte)shtDZ3*pT~cojJ>;6p?zLS3Ian{s z0u7TgZIr2ArxIMEZ7OAK$y9TPK?RghFYC|)*BdkUcQDNIWqyLkL?6Y)H)W#i)!a9G z6^WZ@@%gYeMMU2S=a;#&*;)0AmXL( zaACv`;Xh%CLN%K@h_qqy%(KvcI>8gc04MLmo6Z{z@Aaf>-6k#*;~kO>8Q^w6_ladu z7Pb-=F+=P~43?aM&Bz04Ho!n4IO+BYK*u5e)OLq=HZv@Itu$4#1FL64OyUOxNDK!$ zpcVL@C}B&Amh(S8n!Z8ztX|JF?WKP~+9)CH_=Ah3W|394%8QT+TmHW3ieMl%f+71e z-qETW>75C`=0(_Jv)fsC93SGN2>o3uavA#jn`5Y#&37!^ws5I>BJBy3tzH^$y-Z%D zFT>1HcXIl(d4I^x_;ee`a}xu0vA?YqLJgQ#TkPWb%$WRPnqaU%TdOAei7TPvYA(It z#)^Fs?CZ5`cPyb)hPBFzJRS2R75I$wvKoleN|;;W5q<|@u)IDoF`<;r)5q*Xg(Gxt zZ!T_HC8Qdy=6adk#>cy zX4dNLWY(+5xF)Y)oQ@P+WI654zPa7UG+@fK++R_0nfB_lOQ%L!bAapSTnqa?toC^~ z5FI6^hNIRbT$;phn-O==6IMSx+}9`vmP>vRWl?*^Uq~H=Llhc<14ms05Y3MY>@YHv zKe-Cu=j?g4)LjDq9+JL%X)diqI-P;o!_|KKuez=4(wL5DX(6kX`JL0*M;-+3F7 zr=_AtKEJWNS^PGB5X*Mt0rZ-AhYv9rTj4%xl;K_!uMH-zU05-@OradMC$OyGxGeNP zwtY8NsV*`)qH!e&_5G+IT-N{RGPIMrW9!y20bQ!+uY|BXmtK@z&cvvb0u{fDWh;yG zL;?ZDc5e3azBJTxnNI0gFQtW?O>LDV$SsJ{q-i z)+a0K8fkWY|L{`+WI-4Ako0Z#qsN~~omfY3F4;7CO<$fvDT5dSh>G$yT_z@L(NbCB z-;(~u2GRlWknmz7j3401{1F33-<^#^&#e%9#68Y%Yhuv+J+9<_y@}BPe&;z>KY}MB z=(q;2!$0~7QG_GN0s+Y51pf79vuk||Q|wR&Z#>76_V=r*M0OR_uMmRU+v~kAl}?9^ zX?}GO)%w?+4^`aVWX~)2Y>t1ucY9t>e+Ykn6B2k6_@3AN)ugY*J1@-d@6-ME6AO^u z^BDJLdDhzV{PxO;7u@r5m)axy0hw`jI`(D+r4v8(WbF(0%EXcBpoL(mq$0P^7cJ7F zl^I&1X~cR49uzsCh>;JsGr5oLAmQ!;Wk97^XtZ~VdUZ0x6klMDC8jLs?e-A1cMm0AaqMHHH~{YtN9YxJl4D3F6xNcJ(1ZmzE5QL2z!37*)ed-Np| zyIhuSv=M(7x`7g!3Z4w1HG3uG(3Y?g*r+F@t9XxQej6> zJkC#6T68ZnFA|FK@1b};&d&TK{FOB?{pHpcebvX(j?!g8_{>GLBP*bbqM2JZk$P>6 z8WJ6voNxSPUbx%gs@JqoF!5}0A&BZDBz)oik1-AOp2rhgq*l??oPDiN+|4p%{Lo>H zl3p+crXNKDV@paBixbWVApMIs+yy>Wy{=XD6z1VY;)y1$QKBEWtGWUyYyq%^G#_o? z=0>{$x`UMI!!~XUN8KOPPcR}?>`Q4=@0KhG18qr@AypSZ!hS>;1cv$ zUplr44mqu*OESlhcp^NSONJ)*hT0;B@o%yk_7qP!Z8Zr2`AQmQe=!sGJ($z7e%Tf# zyT2qyYz`LeMgkY_WfP$!WE0K828IN|G+&N0nmN3Vd!%C7*$raO%|IjQ_{e04guAe^ zkPsXM>gctT{G2jLhS|NvAMvamNWYj!zBWIrS6Gp8WiT`uI#dEF48LlpfrjE5T zh|{`9p0j4de4(OPogQ3f*=QlmAYzJdibO+GVmieLjaJT4>Kj}-0jK$Qwvo4<_iY$m zyKKS^_a$pq@;w_7as%dV$YXm~@P$V=54w6A$gVg+oyV6CfXG&a&+SdQiq^6zCnqQ2y?M?QD6=X9O5M3w zIfJIrA`8oP)4=E6S@l746;W8&>P}*Mo|J`56$(BsWj~@=;X0E?Sta_WR8Gm;XvM+S zO3~W3xSr6XoHL0@y`a53_YiZ!WG!srCifmpEsuoU;tpA0w4j%NAR_tv#PISA(ODVu zwY;jT^P=OFO?b`qt?)8gOTDEP4q1x=UkF#+0|Lla3=?;kX*_dlw|o4$?7az|pSgr9 zmMsv$fPqV-*%=F@jx{|JSs+a$86r4Q&`pja)`CY-tn&l&-xH5jNuqF|nBj;4jZ|{X zaopz5$0r@f3#CM;oMug;IugMPX{@0+_(li-@ZEs40K#Wx^@Ba@<>5{4!<@&f<@Vdl zZ%>s@HtPPno5vy6*<(Vt&fqmxMSDZ>VY{VxolvM3ftRFiQRHLOu=<&51L!@1+dc(XcRmK^z6ounjl4O->tAT zm2UBUa*(664hadFNMrFkZ(e~6=oObsdw99x$m)>PFW*oU=s%E=56|MdgUvF1bEp|T zcae%A;eTv-pzsF>c{dw&w4s4`$rKU@xeriC9-^ldpU48esDs{*PM@^&t{g_SI{w}3 z`Pz2%{BZLqWEdVD{R}4JeeXMWoSSF(w!Yk+s!{PtYzC?nNr98Wt4pW_HWEs` zvdbu=c=RVj*udI?cKn?CJr zsy4eHq|S%pIcBjXKxQ-N8495Mo_kuR@AoGBQV4DZ0Xbp*otNEDkEeBMQwIJmEkFT8 zO)ZD&`SnC&V@jw!Swkk)6$B`5S@~}^62X&=y%hQEI+}(&V~iWM3bX?jXWz& zc!_f2J!8F2s2LM!C4MQ|IXHx56jkaP8Z{La@9F6ux9_{97edx&l+A<}K5IV*{eGjteCZOHL#Br10xQHQH*Qkv!<{N$^Pg?aV&n=L7EnjYn)Op{Ki$m?^h#B2D+$CUo zsW*@)&}uWxWv#W`?L(xS<*>^e*lV-7O_}yttk#zQ+kOd zRz>pQ4=&~fbGXCD(BizZ%gRAuvzk9ZUXTvZof)n_Lq^lLdJM zGx{}XO|(8cgWIjWT5rUHmSngvdQ9Z9n<--#?l)BQUTwh)j1s?9M@4W61ixAD0mXsK zqwD)$D4llvNzhw-&=x)oII{-MP3?ZV#VXrGjBoalj-t+mmMA z==y9t@(v+$L%EQBsH9VhLQK($h8Z5-SmPwkdy`h~CLIgWGTG@Dq+du?lh?Ov$467k z;(Bfiy9YtJ9q^3>8alH%23YADm=-uzyfgqMf*@>%5ZO1gSBc%HpRxe;%VYer)--R_$WP18y~D;AY-gV~0L ztJh%{8roKOTNTvtX~Fua_XJIsrLmOhb}zFES%q|*_r(Wo0_&YZV$NVnFaHLY9jM1*W+ko?d_4Kj;-q$+h~aA!Lf!kv&%{m?#> zBHUj}Nox%bybq~Y3$R|Moud5d@y%5h@yu(&D=r~!vod%zja(PSR|GgV2M)^vv&M`f zAfg-poUEC^2S@MccK`MYpk-aZsj-CQfA7xp%Z^uNEH^Z?{}g?7?iRRtf518qtjchO zVHAjt!aWv?2ldJM=hpGFEx0eyE_2-?Phy(8D7FZNF!6@~IY_~`?W3z>u$nKSThpa+ zggTQPN8(aO-kR-rYU3{iY-}_^;KGi#KrYE0(z2Xa1yw8xE@W7<&@swp{NIgpMh;c)1;x5cNLP==Pw^89RI!fKKexjN z8^0p(KZGMwAD#&$ImouItTFb_n_0j^Lt0K}H%P+X9L@+k{pd|)()&FnO@t6-4Ag%nQ5KI&xUymWon5x&|B}*3c+8780T2XV1ag`5S{9d=f2xU-p@$cQ zQOl*eT@uv$o{pz5Tvd>x!w<&yb$mY6R+>mgzQve?fgkOBDaX1y0j zMY#b6^n_qe6J0z5S*AxRDGrOx=uLtQe5!Kb?)4n%jK5WCqPW>p+w0=bt}qU1OB*JI z-|r%#wmF7VNIx5E)t+cd2?|cA*kn%2xR#5dccJ{dH{;h{1vob|B;%&2bWhmKYMSSr zZ*x0cp9dM#a$pkd7fyrTGXeQtVq`WrwmtM~Ud8shUArN2+&-leFbxp@diwjfXqpdf zGVV8u~5)`y6?t#V%VifP$cD1SmMDiQ#|K6vM!4 zHLx54u=+t4ds~;a|4NUWg$3Hg3vob0jE#42iU2<;fSyB0d7G_O$_j^4QPP`TI&z8) zfEQJ9Ek~%^A=8rNVRn;$Fl=GE@h-Eh}0pXp#@BY2u~TK-LO3gNg2@;tx6T4 z{C`czxFmN_-qW^BS88Aqu+0W%ru8`EN_1Qo354wp(GU=!{d>#vclhxEB%y=oUDnZw zvn291DEcdlUbYGo=S#I}bBqx6PRU-u@yF2(MLeqTk&yoRh`pM!K!FCN26~pc=<&6y zp_i(YyquA~tGA8m)Bf<0f~o%D*VRJMH!yI+)eXgtp*4zr&Hh!+SS6FbP`b5?W@_p`TM@52ikKTEEm^0@ zf8Ff_K=T~s==DMXe45Ghk^Np!!)Cv8B9+BDix!L8aj3b-(xhe5hygOLv5)fkyK|UY zzR6EA+4`p^KE#{_)+**kE=4Dr$w$m)$~}eX(6eR=5eV=#n88kQ9H6fRqp+3TpwblH z0O-yX9WSL5HLf-=8u1Ji6ire*)6$UswA|gEeI=z&m4WYTrklFE;{&)|B_=jA|9pdW z9G0Q3{d8w=B@j4P(|0wMDV|iNzwJYrGnBCU1+>MS?P0G!ayUb;O$=e8=;E*BKSYG; zhBC^~(hVaoA%>MM5dMzRjp~Q$UqvgX-*fT+WbQA}1*bNoJJV(bHKwTkFUwgU*nWPA zW)O~it{8;wBA`4NhnJ2h1APY_yMR3(yUEy&u0kP+qhk4(568Ss2H~GychN%C-g8qz z%{1_UKQGRf1uHs7=5Z2^Bm+5Etu#x&H%5aZ&aA-~Eha2GL2BM~exJO`tmP(A2>9Dc zfH#02)VM`n_3Ja6&L{oRhQ9W_{$moSC`PeO8ZCF9O7JcjI3jKI^0ShE64AjGqik1J zGL7hUu1X)5qF?GE`A3YAZlre;I2fxgpb?z!{^pxx2{Vt(>ns3Me{r%?& zTYzLX?lz8)o)fxr(k`@wJF~+n1LqSW(F2w-(9#gEep95n508k#bv^|1n zP425Uc;^qn1(!GGT@(Ih{{PTygPj!x%h?O|Z~Z?s8C4U*GlbxyMb=)MU^Q^OJ6ZDn zb2c_T{cqL3F2yoADG7_nR!ho$rS=n;zAciDYvCE$b;>_LQMB9X7Gz*x;N)C7a6t$( zD&wqE$=9Idnel&?D`Ap6A<(C0`~CD{%;Kutw|5m@*yet|UZdBln8h{qJ6j=(3tZqW zKtL7y(q$lu?)xxd=&)LEe6m>KuItJJ)Ohj4LmWW4D2LX{MQ|uAj3k~J?R5L>hh>)H z;NjKjwO&-!bwm2M?)W}UaqmP&M9jshrLq_rXla!RgOwLDOq>c}&%EDW?&IF^LITIf z$7X+}8fkrQ=cGG5E^BLQsCy7$gA%E7c$|N>_Pp4OibCiqT3c6u%dL@-n9v0+Eq`YG zUT=nDh#<(=*^@TgO082;QZB#WOdsa?Z7+CJ2}nD{N2lDTkVmhcqg<>tjU2ln1}dwm z?cI4%Qc!Groz`r1dK8_9!h}vK5OVPGWpd8g;y71n3dfd;;xq3*k?zP>!Ri>|Kj=oLtuL>7Fy-Cub^c|peV$<$47=G zMjbh=>oL&K_`KT>(=@*Ny|22udMb;1CQsOJERlL^8E%depNo6t>*KOpyMD2-f}*1D zMf;(}RAx$AnzTZi?U8|Y^TdHzmDH_pG;O?2>QS?0zV-S9OOL*?a(rH%-{0T6rKL13 zn~aA!zPA!rbJC6xzAv=l*9KcDNIC4+QH#raIT#X6FJJu$T;!koH2I1cvDg7 zDl03is+y<}@N>fh1Ox;nB_&VymwBAFnkFU`nRfWbtDE{a1TDXkl!P8eDdR>P&+ea~ z0)P!>eewJLN(i8aaPBQPz_&^?4Z%zW+nabtNlB^a%hk^|=RFdyqXHZTP5DfYiWM9t zW@fPPEI>p=L!*T)kW9b(YsPvZ<3x2|N@{AT82Pfip02J~0s4p2mKH8uGA7rhN{xt! z2(V_Vx~i(lb>+{ciXlN3_v-q3Wu=X)t1BJ0SP}}0*ZSr+m7jZiYO1PHj*l{sBlW@;aMVF@K|@T$Srnjm;?mJ_fLjjc0;lpyFEb9WV~>CbtSi3w2B5#Zs4(GVG|Iy$s)aw=?m_jENdFd&;P7|>N$Uqq@Bugc|hrHL^ohlL_= zA{G)3u)~*Y3?^ZD#*pjIW#yZ@OV`8@bDlV`;J`AuPdn3ItrI5 zQ^2!v za$)(nQ*SH|jyIKTb8~ZQu;eM=}&&nq^)Nn9B;spnQC5 z5hRHtgSTC&1z{Z|e6Td_&R^gKq!*91Mso}d43OxruCC6svbgMZ8%$tiA%l*Tlu^ti zRW$1i1ZCu5m~iLN#e5g=w4RnAC)N&1v!n`>(9K_8-~rUqTPx~@)1Mkc?aW@^#I zp6^{~<2S#155N0aaWqf?)V8-jzzP2q_4IrwRmcLnXemA0TsGc-JKts@Dfo2O)X>mS zNGJ4X)s!SIjEU*HOQVI?qTN_!rNdUoXArSKyvO}qsyuCK z2Y5hf^8sWghB9TBwGNIf3{bDZN zA-Z<0M&{Oeey^VNa-AT5>N&I@@b5gtE*vMD^U~6W6}x<+JX%*f&_=S>Zz=?_R~W3u z1Yk!HYs%hc)dCJjO z4J@Yw`AIQPD92)>waq803XKs~8EUN>{hRi;RS3~fpNJJ)kpOnf=`%8@ME*23DH|J` z%W|o@;*XJ^>W%t9N7dKYe;%XFOHNIlU%x%DKsL7~A|h(FTf5$Loq2e96@I;n^Yru# zemR5h_@mB?J6Yn)6!}p}N!a)K3%FRWtD8Agwe-KGa z2UAcerDbOFfu8j9yhFbhjMKpm2`()yfdmUOMnU`f6aH@#%JfD?HA#%H0rH8)f!*I< z1eRU(C1z7z+ijLAS$dwYfAj@`fB}M$PeqW9N+4NsN=k@WL1rdlqRBS0gd#5BMVn~1 zio4Hn{X8}kaq_wKvxB1}8f=gmkHz61rdpx;BWo-V?=mk2v8eMLfKAu#EeQGj>TpM5 zUhGqA8LPUg&-2yDW&2_7^YgRM)1Mq6pN{5cPJIX#ah>(>@Nn;oc4_RP<>h5P$F4iD zU>WTGB6JPRC-2I4w&XFkn#rZsuD>QLYHGT6Ly4;I-X7@^?FwwXpUzv;Qc@K1gao;` zT3T9Cy#{eVD=H{3y?^fs%FVr>KS3T&OiQ!$c`{ZXKxF|(oPcRr7a(A2c{@aIL(>`+ z@l#bYE-!ur{rK<8E67x!f}2eL00p?Xy3S3N!w|T0xE2=G0+M#>n!m*mt}x&wsBhUR_!htfUo}#o`_>Ixk7sE#$?- z`au9dB^8n{a<^!$t2_Z!&f4atfcbcGVj?CVb5q+(Zl&=(5!gx3c)e=L)1o0%W1)Np z(Xd1mTLvE;Et~S4|6h{9L*IWARt8HvADPEcd_$ixisQ>ErPV3M5{z1 z=yf}mMBCKVG%-G2eVPqIV0N|uSU3W@ZVN#a}czJevAPbM!$>VTpAs}U%?8AL+dj3 zqf>an{)+-PMeaKmgbX=uiGR!fiyEDNKy9;&(10OfxH07VOw-p{YWc;qO^JUb*7obK zKN^-wE3o47UsEzDWVxx$d{(c^5g1@ zgo=Kr`}uN>UYSDH@>_`A`nL!~hgIHKeD!?7QShq+>3pAUv?md22%S+>AYar_@d)rw z!iB)^C{V%hjv45wt4kz_qa^FvfraduoVGm8tKHcBk$sKzxDlUvd|!44!U}pMOx6(5 z^b)iO;Mh1g;^!(=9@|)q3z^LTpIlznMGWe(k$>7_FNXW^Yj>RRYkD|=zhLvK?*ex> zVPexeo&;^a?}SbXt6*G(hLy0|ZA;b!Yi&hkwG^~g+5U?tbbjO=iqrd&&f@xu2~`Rt z;yF;hfX*x#g$srlIeech8yYZRGjz{160^+%C>o$*cS{4JH3i>Qcf@_5P{Bsg#5(q% zy@v;5Rggg6aXV~^qY2(lvd^GnWaT~Y(}JW3im0i{NswFfKA1{@g0YoE>g(69-~p%( zCl0Q^2y|&im29?vXgWAJ7zBs5ytL$O_N5uAfQ+IcKqP;qarkjW&WIe-R@+#Uss#jc zn()>y*SK0ep|hR1-@Y(oqsue$c(^l?u~dI8Q9EWihd=jy;MdU}s}zp8b>Kiy>}0;Ym1{l_<#1CnF~>C@DFZ%wPwDOsc?I*3tiF zIs>fj9|B1eIH=Gp*z5RjHtYe;$wC)T&jIKJ1Q}^*_jPZNb%VUK9Oq9vZ?91--Qk3z zFHqPKlKC1%8uw`Bu-D*J1;Lon&E(l5|!d~A0^r)uUta%>91oZ!;s3l}=)u9I&CDwoKcAT{Um5n3XmnY=`E>s8N%bUf5N`5P3X`}_L>zk8wfXGE!KCzhsu zwy%wF78Gp=|4)!5p?#V8QF+1o{QZfP2}!NrcE9bN#-xXf zfsv4sfe)x;Z12 zG**?Jv{XXG$XFt72XFxR-OsdJ>zBMXI;N_?& z&i!)xlb&AHN)U{H3WL`0&=BYX7?e^niHq~|*DF1*OFs*7y(+6YY|YK7Ro0>WE%SW1 zxVSX2hek-eC-<)EOLQj2y5C-(sM4Yocy*c(wUg~sxFd5qz)^A5za?fdv;Ul~~uB70`fkdch+y+_%5hDtU?Rz@K^B%6%v5s8W-GqWVJBU|zQ zPTkM_zR&%>(vpFKk-?llL=4(jx$3#rlt zENXu$P<8b_BC$z+s6|DuHhO-2-O&ICVK5xHxOhPka z{W|73IkoVhZf(3BtA1HonYyZK^{v_i4t8g4jOfIsvWd^51GNuAhGi9_6{6{S1(;AI zj%}K4-{Y~5Pr7CXI8e!^FFKTME+A2)fyVW#@<X|sHi>mA9p zN%#56UpVw+)fy!dA5qq2(i3{xHM+JaLgKSpe_zJs^(Z?W1;}voNSz7I!ots~z{Az8 z3~1RrhYGbp`_P|Rw*k3xdwW~AK<$21RHOgCm$UPQmd^jsWg1y?2E$eteVqxU^a&hC zpz;DFHto?#M0pU@Z=Ya8AYdAu=sM!cUvg!l8!0|aqiacI&yQ0&dwvb$Qe#152A~D0 zR#n$<2yqlfE3Rp_27G@Kp%_DzkeR7o8{Z2p8baMh&2LVDh@}`ud;8a(XQSv9{b6Wh zo`LKJJsk@Rtnm2yCv;L{ZkA7;snkF-2+GWtd}Byfmq7Ob`C<3HYYiv6vjN8P#NrFL z9Ut#I-i!Rxw;mMKZf&pZ1a{_z#85_4N}~6Jd(Z1GDB9Sgw{-D$EIBwD8_2;0g7N?< zFfR$4~;j6F;eDGA0|8R~0|b9=x`_xfBNvE+8M%3sr0RPoGF0PaX= zZbL%@B7)q$EiPqMKyX{oT@D?82VeqGpN00U~Rt)0N43|$%0+8qAg;`;Ikxf+Exls zza$!W{_a|nh;wfEaH7x_6}zBhAidmT?@Rc|!)lnoAU73;T%ziS?ycDqTa7ws@l41cxR6C0Y^)-G2}_v-yKX{#Q7-u#*Pc*d{U?;=DZ^;Ds0e?muEDP3dYmYJ@AS~&9CY4+>;s2=Ppj;L_L zo&q7*_euRnY^k?zKfgF;|JmcBusXRshA;{CIE z&YA}eOfD5Zvlmy9Dmd#~D97*ePT$miNdGunNJUN(CGSqPJn@*@u&L6A6pfwx>6-8ZQ_=cl5%0 z&|XE4-^GT%#NfsS(r)W~344ZG0pVPt2@1Gxzqi=!?8VE)-gar_8o{5#=Oc9oNZGB( zt~CK5)yYhv#Y2g(UA=@tal92rUB+PHnU#+@u1m_mvFM^l73GcnJFFem+@g)c3!aq< z8pyy$GYr@3xobsheVta>Ue%cA`Y76BaidWCShDfUmyhkQ3i=~Od!k!)ZjGv*qkVH} zOq-f$t~jz@q-gEKZ{WHIqw1S>aSoc!g?Emc#~8Z(FY?aHs|~b(GB07mfzG=bwWgOZ>2|w~W-J3vOt-H^Hi!5GAKIMC;VCEY_n>8b?5v zklXY7{y=&+I*P$u5dFD+GxyiJIzH=*VHy21DvnPz!shjus}+H^4GJFXd`-k>?U3!| z;D4^H>~fRR@0(!VvbUaxx3h;@G#OnyuVf!@AD!~;U!o{vtVY6a)!>YVjSTv~M>h@)h20{DJQ<5LGmvHq_c^T6J^szpaiV{(m zVu_RS*oAeUVaWcpWf51IN;o7pwIAlXk89KKcO#SLNquV^w7nIk$}m3 zUpuRF!-|}@Q2`b~2-Y554-M=%zbj8jU7c(= zQYV+*J`ijYzM1bg{5X=&S_+RGlRRDTT7>*Pv$fN#wJ-V#iQ}9e(a?TmO(7w{Xiv#H zLpw-DH9DC!J|_KC!0#*7s5rd|8AzE{Ss@J=_IVf|HfT-d-Fudi2Zt-@#=t3|OU;Y%Dlktvd7UPBceu=~PT*9udv1e;N9Ef$nxy~;vn3CzsuH}YMw zgR&?R`7mC-S$Xe6^%T>EA^c(nLwR|-SdWYc*eFdm|DU0%>bv?lx+an! z4I-fMahuRPLRB=BGbh1+>} zhGkKgm%UG`T?#Ag<6IRJE^Lj@LC0A=I3#G(`-X{{iL)tsU$hshld0?Efs$Q0I3+i# zFV>p*M$S}eDC;jkPe`VNP?4YbMIR0o zD5vQyduK)on$aRDWwge$pPKC>s^&chnS)*17H#xT+UP-g2rQX*&F{@YRPtDORi-TR zOLP+=o5^wpP0{P3138|XW)Ps>QP3q6@+!0>jdy7}BnMC{Q>Kj2Z>+X>wbpUver*V5 z6TOJ7;E{RXif>7r?15q!JjL_mRN?o7KZWIl;HHUcZQn49bg?jc`X((0tyB9hDg86Y z(z8mn!5KZSQ>$KgCjy4}h9w3JATCvgs$FEr50BJk@Wy8)zUrF$BGxH;vQS)~kwYSy zX-et0mxBDUS))|h%iALhmlk~JeV3_e@P~0%La#qcnC0qB$yzzb zKs2y-O1rlqNp%BNx$kV&7is zN*n%QOD2$hWVfnsK$M?zSHTrd5%~itP78Z<3FX+x8fN9%BOZdz5Mpo6QvFBjCgCS( zzw@mOiLqb~`fHb$gy-+=(e>#TNl>OFk=Gr-j=)lFTwJ(sYTR-k{^CKHwJ_~!i!_vv z9*OvEeQz~m<-SWu|L=YRk4IVO#~H0iKBB}9&K`a#zF<&l)at+AaAN@)8>k1fK(0k< zB!FUKGyXq8ghpM5CeFvl$MEY%02fhFQ8X-?Z4+;AT{^FQ2HXoxz@wl$++O3d7?+M@UC1gMY<$aO1qV32}U!S6^9lU$UV6(Hc%N+muS#8$`*f~%0btUG3 z90?`cTdDFa(U(WR55?T4OF7;?RZUr$SQT-N09}f9{EJr98FOP3mBzqiLcayte_8;% zzgwE0swOahS_n3S06ilkBS11>$B-)Oo2$rC7`Pjzu*x(`9>Ne!i<bx2E2OEb~Y*#ubxgb>$H zRjhn`4`|y!-KcY)k%prU#`l)3!8rIonV6YDaUkGp=7%fn?N$3tVCNZ!9OyET zNuMs}{{G!N0&EF+Spcz(Whg^*N9+B2&rkKA9ypEHaHHK_B5zujzEd7m>GDZXInm16 z8b;C9_>96@nXbOi#%vc*{IA^)=*7Kk0CV5I-C(H=i)LxUy=`i8a#H4lg8ne*fmIC+ zx4}aKE$xaKUjCxKv6ZCej?=Io`RdN%cHyZ52jt;m%wZ*L<8t_EufaS8*hxuG-v-_lu=RuH z5ko7UD7ny+zzi!IJUR&42|D_fz^rufX6h^e8_{&rR+^so?=>_uvZMnJpcxku6m)nf z^q*}o1qH=aaxx$i;QfFwp_vB3>de`*6PMV<#Oj_u-#||A0lYptJBtE8(?4woH|pqO zTS>wL$XBh&w+7q>PLpC$vkAr!Y=;s{|N3zy`-7pW=^eOb_qN}nBxvZ&Z!CZ(#}n4H zr>7^(W@v8V1p>{zr)AgLrad;UXg-I|7>q3ej{yL}Gx_l01A9;)&^P!$x4NdPs!cd; z#{2Or!0(%zn{f8g`1m-&ssUv!v6()6VcB^vKc7Vq~B=CVc2fKHE?)yW8 zCn6$3RsL-+a85HYHom>HVk|)`R1(}ug8dQ*RF2pHII!MTspavuxM4asDM-ryJm(@E zGA&L5%Ew06*=x<)Bc@wT@LXDV#+{#OW?M9PeS^GmaBDatBcpEGucWAG5o}7r>5Pci z;CO@ncwl)OSr+*PF^~cy`DX!pnAN$No0yC*4VT|UcZ{T zx?0g_|6}tVU&J?BBq@ha@$fTXP4a}EBzD~IxF}M3eE2<~rZkw61(6G~e2cx(cJ&YH z+5gLzz)9pGd-BIGYm{4f)E)<~OAITftL-&?eMK+a^xqba??mf4(_8ujT7q@A-nP_G6H7dXN>A`bq{ovW04CC;VUKaq9WNGp<8TF0&A-8r00^gK5c^BN ztZ335TO1R8eIWG9JF64Q#d_8F>5Kh4daqv;6ue&ER+N`V#v9xrito;O5a!?tj&bQ&xlCGQ;{Lx3&!!7?KB2bV*9kmH;1vauT1?SK47GQA5jZ;{u9@ zsQdIKSS!GpQ>F0aj}Z|Lxx5i^bdUsoI!%vnD$1`s#D#IU5#knb20$?g*Kb@d&vU=4 zaJSFf!Puy03{WDF^tG9`Ajt2fdfZmmPqdiq$jho&U$TXaYMt~!L3|m8x4g7;AXBa2 z=Z7r9?$~pPkwNNbuMmPguO;-Z_x1HX(Yl(*QheUlz|tTBK`VBF3$otVutI_@UW1he zsMP$to!;R&z3-X#$@XW!<^=OQ<=wZ9TU#_eQ>Q)q;p&r!%T-c)TH9BKgYQ0E25*#w zfq^JM&#^IZftf5lN!K4!i%1T;8?*Yi6${K=1D|n;5vIIKE|BWT&})Md6^>ucduCEa z=~aOkkf1OkBO{Ak@^WjQk zOfNN@SQ~$*@56^|FpYqo2K)L!E;KhVurs$5qBBYF>FwR}YjJdR1SrL7eu`$2;U!3q zc>zqgZ8u0nKeWRX5m9>3Z7sT?(638mBh+As0#{-;*eB1El4^qoPfJVIy7XRD{q^!I z&bqHf+1S{ane!kp=I7gt*EoW~fVnyh8>=uRX6HWDuTm0G!Lg>Be81I3UTeo=kPgdQ zv;|7-P9Qe_bDFNx%?(P1GG23$pA66Pn(YBKST)>(t!E1#vPZMq?D}Xrm*_6tikEVI zpCJyxQ964aoR3%4)Jh8r>mha0OkNMRj0RU}oYXTg8dg@uOX=w8z0x2vGA)9-3GV53 z4Eo^mqRVxW_`?~3Ryet-<1T@%vB8Z9#qOS+bFIr25D%un-oKW(2t5PhE5gpjG7NBZ)X+G+|D%)s z=!aq30R?F+Q@;1++#6z7#H;t-q<-1`Ef0qx2wZb4^Kk#W#(EiEk}HA9ex zTB?U34qyt7baq8fPEKPZ4S6l|N~*)L14AB+mJIz?32xQ9Z+?4lXxg2X=LZJ|F)=Y< z=h+fgO@Y#y?^?ln7WX^uWfITPbhpM+tQjONLfTi7mYX0N@>u=IgUg@~`n3U#4ZDm? z5Y+#WmDUvEbkqmeprl%zsQUmX>`6k>11BdZBO@bNov?jRAx8}+ zCno~{Ish9C4>$KK`Bk*rEom*#%IhLu(sJV8NbQMhFP&LGtAG>$U;*j*V*$|w+v}T3 zVIiJRFp>53AuOoRXM=;|lgmno>}Oc};H`jg0hA&0-M5Zp#jPIsio}x}r@D>nD;y8` zv#ZO=*w%v*uI+y_G5*vLzHVx23gyc)wZ|X(`*Y}b8Se@G^$=rvAmVI7II!L`J*4RY z;%-L}Ux>Q`3H>zf#bEX5O6%O;c_A^r(Ny6BPmT;E&KVKeAbEA{OBiE$2$ImzlK%X! zMB+gQ#Ge=85D?a*|dGf7UKWYTVTV$ zBq{Ytl4qdLIcdB9U%%#is9RO?^zDVry%>ZU8zmuIseWJ}b`O5mu=)9UKzJ1NL`c|? z>dlgBDk^$INqvTbf(P0V3P zy<}IdR26Do-=-;WC{jSWtphjtgj*Al(uK&@W(}G!=b9_cY#EI5^yxa^UtJeUFR>3C zVf_FNL|>W+)Y4X9w{dn}hNF>20T$&=K@wzR zVX2>T`|>U2nj1L$9330H7j;xs-+_z~W`NXpSI&bm@BD-A^<5=-`TD7~V=>eim(Ta1 T+7dW$6@^k((2y^eyB_*q_1?_p literal 0 HcmV?d00001 diff --git a/examples/seneca/trim/trimtest.htm b/examples/seneca/trim/trimtest.htm new file mode 100644 index 000000000..e5fb99ad1 --- /dev/null +++ b/examples/seneca/trim/trimtest.htm @@ -0,0 +1,122 @@ + + + + Processing.js test of trim() + + + + + + + + + + +

+ + trim() test

+

+ This is a test of trim(string)

+

+ trim() removes whitespace characters from the beginning and end of a String. In addition to standard whitespace characters such as space, carriage return, and tab, this function also removes the Unicode "nbsp" character.

+ + + +
+ Test written by
Daniel Hodgin
+

+ Source Code:

+
+// 	Trim example
+size(500,220, P3D);
+background(20);
+stroke(128, 128, 128);
+fill(64);
+rect(1, 1, width-3, height-3);
+
+String s1 = "normal string";
+String s2 = "   extra leading spaces";
+String s3 = "extra trailing spaces    ";
+String s4 = "   both leading and trailing   ";
+String[] a = { "    inconsistent ", "  spacing", "ok" };
+String[] a2 = trim(a);
+
+PFont font;
+font = loadFont("Arial"); 
+textFont(font, 14);
+fill(32, 255, 0);
+text("Strings", 5, 20);
+text("String Arrays", 5, 120);
+fill(255, 255, 255);
+text("s1: " + s1, 15, 40);
+text("after: " + trim(s1), 240, 40);
+text("s2: " + s2, 15, 60);
+text("after: " + trim(s2), 240, 60);
+text("s3: " + s3, 15, 80);
+text("after: " + trim(s3), 240, 80);
+text("s4: " + s4, 15, 100);
+text("after: " + trim(s4), 240, 100);
+for(int i=0; i<a2.length; i++){
+  text("a[" + i + "]: " + a[i], 15, 140+(i*20));
+  text("after: " + a2[i], 240, 140+(i*20));
+}
+        
+
+ + diff --git a/processing.js b/processing.js index cd358d8e0..b6a0b147e 100644 --- a/processing.js +++ b/processing.js @@ -1628,7 +1628,21 @@ return key; }; - + p.trim = function( str ) { + var newstr; + if (typeof str === "object") { + // if str is an array recursivly loop through each element + // and drill down into multiple arrays trimming whitespace + newstr = new Array(0); + for (var i = 0; i < str.length; i++) { + newstr[i] = p.trim(str[i]); + } + } else { + // if str is not an array then remove all whitespace, tabs, and returns + newstr = str.replace(/^\s*/,'').replace(/\s*$/,'').replace(/\r*$/,''); + } + return newstr; + }; //////////////////////////////////////////////////////////////////////////// // Math functions