package Ġcom . movie ous . media . utils Ċ Ċ import Ġandroid . text . Text Paint Ċ Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ åŃĹç¬¦ä¸² å·¥åħ· Ċ Ġ*/ Ċ object ĠStringUtils Ġ{ ĊĊĠĠĠ Ġval ĠEMPTY Ġ= Ġ"" ĊĠĠĠ Ġ// Ġ æĹ¥æľŁ æł¼å¼ı ĊĠĠĠ Ġprivate Ġval ĠDEFAULT _ DATE _ PATTERN Ġ= Ġ" yyyy - MM - dd " ĊĠĠĠ Ġprivate Ġval ĠDEFAULT _ DATETIME _ PATTERN Ġ= Ġ" yyyy - MM - dd Ġhh : mm : ss " ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ çĶ¨äºİ çĶŁæĪĲ æĸĩä»¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval ĠDEFAULT _ FILE _ PATTERN Ġ= Ġ" yyyy - MM - dd - HH - mm - ss " ĊĠĠĠ Ġprivate Ġval ĠKB Ġ= Ġ 1 0 2 4 . 0 ĊĠĠĠ Ġprivate Ġval ĠMB Ġ= Ġ 1 0 4 8 5 7 6 . 0 ĊĠĠĠ Ġprivate Ġval ĠGB Ġ= Ġ 1 0 7 3 7 4 1 8 2 4 . 0 ĊĊĠĠĠ Ġval ĠDATE _ FORMAT _ PART Ġ= ĠSimpleDateFormat (" HH : mm ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ å½ĵåīį æĹ¶éĹ´ çļĦ åŃĹç¬¦ä¸² æł¼å¼ı ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval ĠcurrentTime String : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠDATE _ FORMAT _ PART . format ( Calendar . getInstance (). time ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ å½ĵåīį æĹ¥æľŁ çļĦ åŃĹç¬¦ä¸² ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġdate : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġformat Date ( Date (), ĠDEFAULT _ DATE _ PATTERN ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ å½ĵåīį æĹ¶éĹ´ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval ĠdateTime : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġformat Date ( Date (), ĠDEFAULT _ DATETIME _ PATTERN ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġchar ç±»åŀĭ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġp iny in ĊĠĠĠĠ Ġ* Ġ@ param Ġindex ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġchat At ( pin yin : ĠString ?, Ġindex : ĠInt ): ĠChar Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( pin yin Ġ!= Ġnull Ġ&& Ġp iny in . length Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp iny in [ index ] ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ' Ġ' ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ åŃĹç¬¦ä¸² å®½åº¦ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġtext ĊĠĠĠĠ Ġ* Ġ@ param ĠSize ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠGet Text Width ( text : ĠString , ĠSize : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isEmpty ( text )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠFont Paint Ġ= ĠText Paint () ĊĠĠĠĠĠĠĠ ĠFont Paint . text Size Ġ= ĠSize ĊĠĠĠĠĠĠĠ Ġreturn ĠFont Paint . measure Text ( text . trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ}) Ġ+ Ġ( Size Ġ* Ġ 0 . 1 ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æł¼å¼ı åĮĸ æĹ¥æľŁ åŃĹç¬¦ä¸² ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdate ĊĠĠĠĠ Ġ* Ġ@ param Ġpattern ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġformat Date ( date : ĠDate , Ġpattern : ĠString Ġ= ĠDEFAULT _ DATE _ PATTERN ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠSimpleDateFormat ( pattern ) ĊĠĠĠĠĠĠĠ Ġreturn Ġformat . format ( date ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æł¼å¼ı åĮĸ æĹ¥æľŁ åŃĹç¬¦ä¸² ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdate ĊĠĠĠĠ Ġ* Ġ@ param Ġpattern ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġformat Date ( date : ĠLong , Ġpattern : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠSimpleDateFormat ( pattern ) ĊĠĠĠĠĠĠĠ Ġreturn Ġformat . format ( Date ( date )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æł¼å¼ı åĮĸ æĹ¥æľŁ åŃĹç¬¦ä¸² ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdate ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġformat Date ( date : ĠLong ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġformat Date ( Date ( date ), ĠDEFAULT _ DATE _ PATTERN ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠçĶŁæĪĲ ä¸Ģä¸ª æĸĩä»¶ åĲį ï¼Į ä¸į åĲ« åĲİ ç¼Ģ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate FileName (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠDate ( System . currentTimeMillis ()) ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠSimpleDateFormat ( DEFAULT _ FILE _ PATTERN ) ĊĠĠĠĠĠĠĠ Ġreturn Ġformat . format ( date ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æł¼å¼ı åĮĸ æĹ¥æľŁ æĹ¶éĹ´ åŃĹç¬¦ä¸² ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdate ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġformat DateTime ( date : ĠDate ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġformat Date ( date , ĠDEFAULT _ DATETIME _ PATTERN ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æł¼å¼ı åĮĸ æĹ¥æľŁ æĹ¶éĹ´ åŃĹç¬¦ä¸² ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdate ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġformat DateTime ( date : ĠLong ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġformat Date ( Date ( date ), ĠDEFAULT _ DATETIME _ PATTERN ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æł¼ æŀĹ å°¼ æ²» æĹ¶éĹ´ è½¬æį¢ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġg mt ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġformat GMT Date ( gmt : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtime Zone L ondon Ġ= ĠTime Zone . getTime Zone ( gmt ) ĊĠĠĠĠĠĠĠ Ġreturn Ġformat Date ( Calendar . getInstance ( time Zone L ondon ). time In Millis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæĭ ¼ æİ¥ æķ°ç»Ħ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġarray ĊĠĠĠĠ Ġ* Ġ@ param Ġseparator ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġjoin ( array : ĠArrayList < String > ?, Ġseparator : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠStringBuffer () ĊĠĠĠĠĠĠĠ Ġif Ġ( array Ġ!= Ġnull Ġ&& Ġarray . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( str Ġin Ġarray ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . append ( str ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . append ( separator ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . delete ( result . length Ġ- Ġ 1 , Ġresult . length ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæĭ ¼ æİ¥ æķ°ç»Ħ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġiter ĊĠĠĠĠ Ġ* Ġ@ param Ġseparator ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġjoin ( iter : ĠIterator < String > ?, Ġseparator : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠStringBuffer () ĊĠĠĠĠĠĠĠ Ġif Ġ( iter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( iter . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġiter . next () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . append ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . append ( separator ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . length Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . delete ( result . length Ġ- Ġ 1 , Ġresult . length ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪ¤æĸŃ åŃĹç¬¦ä¸² æĺ¯åĲ¦ ä¸ºç©º ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġstr ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠisEmpty ( str : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstr Ġ== Ġnull Ġ|| Ġstr . length Ġ== Ġ 0 Ġ|| Ġstr . equals (" null ", Ġignore Case Ġ= Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åİ» æİī ç©º æł¼ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġstr ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtrim ( str : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstr ?. trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} Ġ?: ĠEMPTY ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĹ¶éĹ´ æĺ¾ç¤º ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġtime Ġæ¯ « ç§Ĵ ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġgenerate Time ( time : ĠLong ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmillis Seconds Ġ= Ġ( time Ġ% Ġ 1 0 0 0 ). toInt () ĊĠĠĠĠĠĠĠ Ġval Ġtotal Seconds Ġ= Ġ( time Ġ/ Ġ 1 0 0 0 ). toInt () ĊĠĠĠĠĠĠĠ Ġval Ġseconds Ġ= Ġtotal Seconds Ġ% Ġ 6 0 ĊĠĠĠĠĠĠĠ Ġval Ġminutes Ġ= Ġtotal Seconds Ġ/ Ġ 6 0 Ġ% Ġ 6 0 ĊĠĠĠĠĠĠĠ Ġval Ġhours Ġ= Ġtotal Seconds Ġ/ Ġ 3 6 0 0 ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( hours Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ("% 0 2 d :% 0 2 d :% 0 2 d ", Ġhours , Ġminutes , Ġseconds ) Ġ// Ġ æĺ¾ç¤º æĹ¶ åĪĨ ç§Ĵ ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( minutes Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ("% 0 2 d :% 0 2 d ", Ġminutes , Ġseconds ) ĠĠĠĠĠ Ġ// Ġ æĺ¾ç¤º åĪĨ éĴŁ åĴĮ ç§Ĵ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( total Seconds Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ("% 0 2 d '' % 0 2 d ", Ġtotal Seconds , Ġmillis Seconds ) Ġ// Ġ æĺ¾ç¤º ç§Ĵ åĴĮ æ¯ « ç§Ĵ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format (" '' % 0 2 d ", Ġmillis Seconds ) ĠĠ Ġ// Ġåıª æĺ¾ç¤º æ¯ « ç§Ĵ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĹ¶éĹ´ æĺ¾ç¤º Ġ( åĮħåĲ« æ¯ « ç§Ĵ è®¡ç®Ĺ ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġtotal Millis Seconds ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġgenerate Millis Time ( total Millis Seconds : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmillis Seconds Ġ= Ġtotal Millis Seconds Ġ% Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġtotal Seconds Ġ= Ġtotal Millis Seconds Ġ/ Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġseconds Ġ= Ġtotal Seconds Ġ% Ġ 6 0 ĊĠĠĠĠĠĠĠ Ġval Ġminutes Ġ= Ġtotal Seconds Ġ/ Ġ 6 0 Ġ% Ġ 6 0 ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( minutes Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ("% 0 2 d :% 0 2 d ", Ġminutes , Ġseconds ) Ġ Ġ// åĪĨ éĴŁ åĴĮ ç§Ĵ ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( seconds Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ("% 0 2 d '' % 0 2 d ", Ġseconds , Ġmillis Seconds ) Ġ// Ġ ç§Ĵ åĴĮ æ¯ « ç§Ĵ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format (" '' % 0 2 d ", Ġmillis Seconds ) Ġ// Ġæ¯ « ç§Ĵ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĹ¶éĹ´ æĺ¾ç¤º ( åıª æĺ¾ç¤º åĪ° ç§Ĵ ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġtotal Millis Seconds ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġgenerate Standard Time ( total Millis Seconds : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtotal Seconds Ġ= Ġtotal Millis Seconds Ġ/ Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġseconds Ġ= Ġtotal Seconds Ġ% Ġ 6 0 ĊĠĠĠĠĠĠĠ Ġval Ġminutes Ġ= Ġtotal Seconds Ġ/ Ġ 6 0 Ġ% Ġ 6 0 ĊĠĠĠĠĠĠĠ Ġreturn ĠString . format ("% 0 2 d :% 0 2 d ", Ġminutes , Ġseconds ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è½¬æį¢ æĸĩä»¶ å¤§å°ı ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsize ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġgenerate FileSize ( size : ĠLong ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠfileSize : ĠString ĊĠĠĠĠĠĠĠ Ġif Ġ( size Ġ< ĠKB ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfileSize Ġ= Ġsize . toString () Ġ+ Ġ" B " ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( size Ġ< ĠMB ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfileSize Ġ= ĠString . format ("% . 1 f ", Ġsize Ġ/ ĠKB ) Ġ+ Ġ" KB " ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( size Ġ< ĠGB ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfileSize Ġ= ĠString . format ("% . 1 f ", Ġsize Ġ/ ĠMB ) Ġ+ Ġ" MB " ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfileSize Ġ= ĠString . format ("% . 1 f ", Ġsize Ġ/ ĠGB ) Ġ+ Ġ" GB " ĊĊĠĠĠĠĠĠĠ Ġreturn ĠfileSize ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠæŁ¥ æī¾ åŃĹç¬¦ä¸² ï¼Į æī¾åĪ° è¿ĶåĽŀ ï¼Į æ²¡ æī¾åĪ° è¿ĶåĽŀ ç©º ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsearch ĊĠĠĠĠ Ġ* Ġ@ param Ġstart ĊĠĠĠĠ Ġ* Ġ@ param Ġend ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfind String ( search : ĠString , Ġstart : ĠString , Ġend : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstart _ len Ġ= Ġstart . length ĊĠĠĠĠĠĠĠ Ġval Ġstart _ pos Ġ= Ġif Ġ( StringUtils . isEmpty ( start )) Ġ 0 Ġelse Ġsearch . indexOf ( start ) ĊĠĠĠĠĠĠĠ Ġif Ġ( start _ pos Ġ> Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend _ pos Ġ= Ġif Ġ( StringUtils . isEmpty ( end )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch . indexOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart _ pos Ġ+ Ġstart _ len ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( end _ pos Ġ> Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsearch . substring ( start _ pos Ġ+ Ġstart . length , Ġend _ pos ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĪª åıĸ åŃĹç¬¦ä¸² ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsearch ĠĠĠĠĠĠ Ġ å¾ħ æĲľç´¢ çļĦ åŃĹç¬¦ä¸² ĊĠĠĠĠ Ġ* Ġ@ param Ġstart ĠĠĠĠĠĠĠ Ġ èµ· å§ĭ åŃĹç¬¦ä¸² Ġ ä¾ĭå¦Ĥ ï¼ļ< title > ĊĠĠĠĠ Ġ* Ġ@ param Ġend ĠĠĠĠĠĠĠĠĠ Ġ ç»ĵæĿŁ åŃĹç¬¦ä¸² Ġ ä¾ĭå¦Ĥ ï¼ļ</ title > ĊĠĠĠĠ Ġ* Ġ@ param ĠdefaultValue ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġsubstring ( search : ĠString , Ġstart : ĠString , Ġend : ĠString , ĠdefaultValue : ĠString Ġ= Ġ"") : ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstart _ len Ġ= Ġstart . length ĊĠĠĠĠĠĠĠ Ġval Ġstart _ pos Ġ= Ġif Ġ( StringUtils . isEmpty ( start )) Ġ 0 Ġelse Ġsearch . indexOf ( start ) ĊĠĠĠĠĠĠĠ Ġif Ġ( start _ pos Ġ> Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend _ pos Ġ= Ġif Ġ( StringUtils . isEmpty ( end )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch . indexOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart _ pos Ġ+ Ġstart _ len ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( end _ pos Ġ> Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch . substring ( start _ pos Ġ+ Ġstart . length , Ġend _ pos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch . substring ( start _ pos Ġ+ Ġstart . length ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠdefaultValue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæĭ ¼ æİ¥ åŃĹç¬¦ä¸² ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġstr s ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġconcat ( var arg Ġstr s : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠStringBuffer () ĊĠĠĠĠĠĠĠ Ġif Ġ( strs Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( str Ġin Ġstr s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( str Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . append ( str ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHelper Ġfunction Ġfor Ġmaking Ġnull Ġstrings Ġsafe Ġfor Ġcomparisons , Ġetc . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ( s Ġ= Ġ= Ġnull ) Ġ? Ġ"" Ġ: Ġs ; ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġmake Safe ( s : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġs Ġ?: Ġ"" ĊĠĠĠ Ġ} Ċ } Ċ /** Ċ Ġ* Ġ æł¼å¼ı åĮĸ æĹ¥æľŁ åŃĹç¬¦ä¸² Ċ Ġ* Ċ Ġ* Ġ@ param Ġdate Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ /** Ċ Ġ* Ġ æĪª åıĸ åŃĹç¬¦ä¸² Ċ Ġ* Ċ Ġ* Ġ@ param Ġsearch Ġ å¾ħ æĲľç´¢ çļĦ åŃĹç¬¦ä¸² Ċ Ġ* Ġ@ param Ġstart Ġ Ġ èµ· å§ĭ åŃĹç¬¦ä¸² Ġ ä¾ĭå¦Ĥ ï¼ļ< title > Ċ Ġ* Ġ@ param Ġend ĠĠĠ Ġ ç»ĵæĿŁ åŃĹç¬¦ä¸² Ġ ä¾ĭå¦Ĥ ï¼ļ</ title > Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ