рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рд╕рднреА рдирд┐рдпрдВрддреНрд░рдг рд╡рд░реНрдг рдХреИрд╕реЗ рдирд┐рдХрд╛рд▓реЗрдВ - рдПрдХ рддреВрдлрд╛рдиреА рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореБрдЭреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛рд░реНрдп рдХреЗ рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рд╛, рдЬреЛ рдмрд┐рдЧ рдХреНрд▓рд╕реНрдЯрд░ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛ рдФрд░ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдХрд╛рдо рдХрд┐рдпрд╛: рдЦреЗрддреЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдЗрдирдкреБрдЯ рдзрд╛рд░рд╛ рдХреЛ рдПрдо рдлрд╝реАрд▓реНрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд╡рд┐рдШрдЯрд┐рдд рд╣реЛрдирд╛ рдкрдбрд╝рд╛ рдФрд░ рд▓рдЧрднрдЧ рд╢рд╛рдВрдд рд╣реЛ рдЧрдпрд╛ред рд▓рдЧрднрдЧ - рдХреНрдпреЛрдВрдХрд┐ рдЦреЗрддреЛрдВ рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХреА рд▓рд╛рдЗрдиреЗрдВ рдереАрдВ рдЬрд┐рдиреНрд╣реЗрдВ "рд╕рд╛рдлрд╝" рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА - рдПрдХ рд╕рд░рд▓ рдмрд╛рд╣рд░ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓рд╛рдЗрди рд╕реЗ рд╕рднреА рдирд┐рдпрдВрддреНрд░рдг рдкрд╛рддреНрд░реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрд╢рдиред

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдСрдкрд░реЗрд╢рди "рд╕рд░рд▓" рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд▓рдЧрддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рд╣рдо рдЗрд╕реЗ рдЖрдзреБрдирд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдПрдХ рдЖрднрд╛рд╕реА рдорд╢реАрди рдХреЗ рд╕рд╛рде рдорд╛рдирддреЗ рд╣реИрдВред рдиреАрдЪреЗ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдЖрдк рдПрдХ-рд▓рд╛рдЗрди рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рджрд░реНрдЬрдиреЛрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ ~ 10 рдЧреБрдирд╛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЕрднреА рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдЬрд╛рд╡рд╛ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдФрд░ рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╡рд┐рдЪрд╛рд░ рд╕рддреНрдп рд╣реЛрдВрдЧреЗ - рдореБрдЦреНрдп рд░реВрдк рд╕реЗ .NET- рдЖрдзрд╛рд░рд┐рдд рдХреЗ рд▓рд┐рдПред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рд╕рдВрдкреВрд░реНрдг рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд┐рдореНрди рд╕реЗ рдШрдЯ рдЧрдИ:
  1. рдмрд╛рд╣рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдиреЗрдЯрд╡рд░реНрдХ рдпрд╛ рдбрд┐рд╕реНрдХ) рдПрди рдлрд╝реАрд▓реНрдб рдХрд╛ рдПрдХ рд╕реЗрдЯ: ( 1 рдореЗрдВ , 2 рдореЗрдВ , ..., рдПрди рдореЗрдВ )
  2. рдПрдХ рджрд░реНрдЬрди рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рдЬреИрд╕реЗ рдХрд┐ рд╕рд░рд▓ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рдирдХрд▓ рдХрд░рдирд╛
  3. рдирд┐рдпрдВрддреНрд░рдг рд╡рд░реНрдгреЛрдВ рд╕реЗ рд╕рднреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ ( 1 , рдЖрдЙрдЯ 2 , ..., рдЖрдЙрдЯ m ) рд╕рд╛рдлрд╝ рдХрд░реЗрдВ
  4. рдЙрдиреНрд╣реЗрдВ рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ (рдбрд┐рд╕реНрдХ рдкрд░ рдЬрд▓рд╛рдПрдВ рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рднреЗрдЬреЗрдВ)

рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдРрд╕реЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рд╕реНрдХ рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЖрд░рд╛рдо рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛрдЧрд╛ - рдкреНрд░реЛрд╕реЗрд╕рд░ рд▓реЛрдб рдпрд╣рд╛рдВ рдХрдо рд╕реЗ рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд░рд▓рддрдо рд░реВрдкрд░реЗрдЦрд╛ рдиреЗ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЪреАрдЬ рджрд┐рдЦрд╛рдИред рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рд╢рд╛рдорд┐рд▓ рдереА, рдЬреЛ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рдХрд╛рдордХрд╛рдЬреА рд╕рдордп рдХрд╛ 80-90% рдЦрд░реНрдЪ рдХрд░рддреА рдереА - рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рдкрдВрдХреНрддрд┐ рдереА, рдЬрд┐рд╕рдиреЗ рдСрдкрд░реЗрд╢рди 3 рдХрд┐рдпрд╛, рдпрд╣рд╛рдВ рдпрд╣ рд╣реИ:

рд╡рд┐рдХрд▓реНрдк 1
s = s.replaceAll("\\p{Cntrl}", ""); 

рдореБрдЭреЗ рдпрд╣ рднреА рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓рд╛рдЗрди рдХрд╣рд╛рдВ рд╕реЗ рдЖрдИ рдереА - рд╡рд╛рдХреНрдпрд╛рдВрд╢ "рдЬрд╛рд╡рд╛ рд╕реНрдЯреНрд░рд┐рдк рдиреЙрди-рдкреНрд░рд┐рдВрдЯреЗрдмрд▓ рдХреИрд░реЗрдХреНрдЯрд░" рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд Google рдЦреЛрдЬ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдХрд▓реНрдк рдХреА рдкреИрджрд╛рд╡рд╛рд░ рджреЗрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХрд╛рд░реНрдп рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓рдХреНрд╖реНрдп рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд╛ рдЧреМрд░рд╡ рдЖрд╣рдд рд╣реИ ("рдРрд╕рд╛ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд░реЗрдЦрд╛ рдХреЛ рдлреИрд▓ рдирд╣реАрдВ рд╕рдХрддрд╛"), рдЪрд▓реЗрдВ!

рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдЯреНрд░реИрдкрд┐рдВрдЧ рдХреЛ рдХреЛрдбрд╝рд╛ рдорд╛рд░рддреЗ рд╣реИрдВ рдЬреЛ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рдЪрд▓рдиреЗ рдХреЗ рд╕рдордп рдХреЛ рдорд╛рдкрддрд╛ рд╣реИ, рдЗрд╕реЗ рдмрд╛рдХреА рдХреЛрдб рд╕реЗ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЗрдирдкреБрдЯ рд▓рд╛рдЗрди рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЦреЛрдВ рдмрд╛рд░ рдЪрд▓рд╛рдПрдВрдЧреЗ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдорд╛рдкреЗрдВрдЧреЗред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 517009 рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ ред рд╣рдо рдХрдИ рдорд╛рдк рд▓реЗрддреЗ рд╣реИрдВ, рд╣рдо рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдорд╛рдк рдФрд░ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╕рдЯреАрдХрддрд╛ рд▓рдЧрднрдЧ 2-3% рд╣реИ - рдЕрд░реНрдерд╛рддреНред рдореЛрдЯреЗ рддреМрд░ рдкрд░, рдЖрдк рдЕрдВрддрд┐рдо 4 рдЕрдВрдХреЛрдВ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдВрдд рд╕реЗ рдкрд╛рдВрдЪрд╡реЗрдВ рдЕрдВрдХ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛рдиреА рдХрд╣реАрдВ 500..540 рд╣рдЬрд╛рд░ рдХреЗ рдмреАрдЪ рдкрд░рд┐рдгрд╛рдоред

рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ \p{Cntrl} ред рд╣рдо рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рддрддреНрд╡ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ 0 рд╕реЗ 31 рд╕рдорд╛рд╡реЗрд╢реА, рдкреНрд▓рд╕ 127 рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╡рд░реНрдгреЛрдВ рдХреА рдкрд╕рдВрдж рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЬрд▓реНрджреА рд╕реЗ рдЬрд╛рдБрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХреБрдЫ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдпрджрд┐ рд╣рдо рдЗрд╕ \p{Cntrl} рдХреЛ рд╕рднреА рд╡рд░реНрдгреЛрдВ рдХреЗ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрд▓рдпрди рдореЗрдВ рдмрджрд▓ рджреЗрдВ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ [az] рдЬреИрд╕реЗ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ:

рд╡рд┐рдХрд▓реНрдк 2
 s = s.replaceAll("[\\x00-\\x1F]", ""); 

рдирд╣реАрдВ, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рд╕рднреА рд╕рдорд╛рди 520000% 3% ред

рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЕрджреНрднреБрдд рдЬрд╛рд╡рд╛ рднрд╛рд╖рд╛ рдореЗрдВ, рд╕рдВрдХрд▓рдХ, рдЖрднрд╛рд╕реА рдорд╢реАрди рдФрд░ stdlibs рдЕрдХреНрд╕рд░ рдПрдХ рдЕрд▓рдЧ рдЬреАрд╡рди рдЬреАрддреЗ рд╣реИрдВ рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ - рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдПрдХ рд╣реА рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд▓рд╛рдЦреЛрдВ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╣рд░ рдмрд╛рд░ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИред рд╕реНрдЯреНрд░рд┐рдВрдЧ # рд░рд┐рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЭрд╛рдБрдХрдиреЗ рд╕реЗ рдЗрд╕ рдЕрдиреБрдорд╛рди рдХреА рдкреБрд╖реНрдЯрд┐ рд╣реЛрддреА рд╣реИред рд╣рдо рдЗрд╕ рдмрд╣реБрдд рд╕рдВрдХрд▓рди рдХреЛ рдХреЛрд╖реНрдардХ рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

рд╡рд┐рдХрд▓реНрдк 3
 public static final Pattern KILL_CC_PATTERN = Pattern.compile("[\\x00-\\x1F]"); ... Matcher m = KILL_CC_PATTERN.matcher(s); s = m.replaceAll(""); 

рдЕрдЪрд╛рдирдХ, рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рдмрдЬрд╛рдп - рддреАрди, рдФрд░ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдмрдврд╝рдХрд░ 640,000 of 3% рд╣реЛ рдЧрдИ - рдХрдИ рдмрд╛рд░ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдЕрдЪрд╛рдирдХ рд╣рдордиреЗ + 23% рд╡рд╛рдкрд╕ рдЬреАрдд рд▓рд┐рдпрд╛ред

рд╣рдо рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдирд╣реАрдВ рд╕реЛрдЪрддреЗ рдХрд┐ рдХреНрдпрд╛ рдмреЗрд╣рддрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд╣рдо рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдПрдХ рд▓реВрдк рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЪрд░рд┐рддреНрд░ рджреНрд╡рд╛рд░рд╛ рдЪрд░рд┐рддреНрд░ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реБрдП ( рд╕реНрдЯреНрд░рд┐рдВрдЧ # рдХреЛрдбрдкреНрд▓рд╛рдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЦреАрдВрдЪрдХрд░ ), рдФрд░ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВред рдЕрд╡рдЪреЗрддрди рдорди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рддрд╛рд░ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧрдмрд░реНрд▓ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧрдмрд░реНрдЧрд░ рдореЗрдВ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдХреНрд▓рд╕реНрдЯрд░ рд╣рдо рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░рдХрд░рдг рдХрд░рддрд╛ рд╣реИ, рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдПрди рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЪрд▓рд╛рддрд╛ рд╣реИред рдкреНрд░рд▓реЗрдЦрди рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдЬрд╝рд░ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧрдмрд░реНрд▓ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ - рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕реЗ рдХрд░реЗрдВрдЧреЗ - рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╢реБрд░реВ рдореЗрдВ рд▓рд╛рдЗрди рдореЗрдВ рдирд╣реАрдВ рдереЗред

рд╡рд┐рдХрд▓реНрдк 4
 StringBuilder sb = new StringBuilder(s.length()); for (int j = 0; j < s.length(); j++) { int ch = s.codePointAt(j); if (ch >= ' ') sb.appendCodePoint(ch); } s = sb.toString(); 

1 рдХреЗ рдмрдЬрд╛рдп 7 рд▓рд╛рдЗрдиреЗрдВ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 710000 of 3% рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд▓рд╛рдЗрдиреЗрдВред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА + 37% рд╣реИ - рдПрдХ рддрд┐рд╣рд╛рдИ рд╕реЗ рдЕрдзрд┐рдХред

рд╣рдо рдЖрдЧреЗ рднреА рд╕реЛрдЪрддреЗ рд░рд╣рддреЗ рд╣реИрдВред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд┐рдЪрд╛рд░ рдкреЙрдк рдЕрдк рд╣реЛрддрд╛ рд╣реИ - рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдпреВрдирд┐рдХреЛрдб рдХреЛрдбрдкреЙрдЗрдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдирд┐рдпрдорд┐рдд рдЬрд╛рд╡рд╛ рдЪрд╛рд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ? рд╣рдо рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд░реЛрдЧреЗрдЯ, рдХрдВрдкреЛрдЬрд┐рдЯ рдЖрджрд┐ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдЦреЛ рджреЗрддреЗ рд╣реИрдВред рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ - рд▓реЗрдХрд┐рди рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ - рдХреБрдЫ рднреА рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╣рдо рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:

рд╡рд┐рдХрд▓реНрдк 5
 StringBuilder sb = new StringBuilder(s.length()); for (int j = 0; j < s.length(); j++) { char ch = s.charAt(j); if (ch >= ' ') sb.append(ch); } s = sb.toString(); 

рд╡рд╣реА 7 рд▓рд╛рдЗрдиреЗрдВ, рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдирдЧрдгреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рджрд░реНрд╢рди рдЕрдЪрд╛рдирдХ 1,052,000 ! 3% рддрдХ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ ! рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢рд╛рдВрдд рд╣реИ - рдпрд╣ рдореВрд▓ (+ 103%) рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ 2 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╣реИред

рдХреНрдпрд╛ рдЗрд╕реЗ рдФрд░ рднреА рддреЗрдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдЖрдЗрдП StringBuilder рдХреЗ рдЕрдВрджрд░ рджреЗрдЦреЗрдВ, рдЕрдЪрд╛рдирдХ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХрд╛ рдЬрдВрдЧрд▓реА рдЬрд╛рджреВ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдХрд┐ рдЬреЗрд╡реАрдПрдо рд╕реА-рдХреЛрдб рдореЗрдВ рдЧрд╣рд░рд╛рдИ рддрдХ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢реБрджреНрдз рдЬрд╛рд╡рд╛ рдореЗрдВ рдЦреБрдж рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рдорд╛рдзрд╛рди рд╣реИред StringBuilder рдХреЗ рдЕрдВрджрд░, рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдБ рддреБрдЪреНрдЫ рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИрдВ рдЬреЛ рд╡рд░реНрдгреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдЪрд╛рд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛрдбрд╝рддреА рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЗ рд╕рднреА рд╕рдВрд░рдЪрдирд╛рдПрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╣реИрдВ - рд╣рдо рд╡рд╣рд╛рдВ рд▓рд╛рдЗрди рдХреЗ рдмреАрдЪ рдореЗрдВ рдХреБрдЫ рдбрд╛рд▓рдиреЗ рдирд╣реАрдВ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЕрд▓рдЧ рд╕реЗ рдзрдХреНрдХрд╛ рджреЗрдВ, рдЖрджрд┐ред рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рддрд░реАрдХреЗ рд╕реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓рдЧрднрдЧ рдПрдХ рд╕реА-рд╡реЗ:

рд╡рд┐рдХрд▓реНрдк 6
 char[] res = new char[s.length()]; int newLen = 0; for (int j = 0; j < s.length(); j++) { char ch = s.charAt(j); if (ch >= ' ') { res[newLen] = ch; newLen++; } } s = new String(res, 0, newLen); 

10 рд▓рд╛рдЗрдиреЗрдВ рдереАрдВ , рд▓реЗрдХрд┐рди рдЙрддреНрдкрд╛рджрдХрддрд╛ рджреЛрдЧреБрдиреА рд╣реЛ рдЧрдИ: 2022000 ! 3% ! рдпрд╣ рд░реЗрдЧреЗрдХреНрд╕рдкреА рдХреЗ рд╕рд╛рде рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 4 рдЧреБрдирд╛ рддреЗрдЬ рд╣реИред

рдпрд╣рд╛рдВ рдФрд░ рдХреНрдпрд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдордиреЗ append рдХреЙрд▓ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ String#charAt() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рд░реНрдЧ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рднреА рд╕рдВрднрд╡ рд╣реИред рдПрдХ рдФрд░ рдХрдк рдХреЙрдлреА рдкреАрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдЗрдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреНрд▓рд╛рд╕ рдФрд░ рдЙрд╕реА рд╕реНрдЯреНрд░рд┐рдВрдЧрдмрд░реНрд▓ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рдЕрдВрджрд░ рдЭрд╛рдВрдХрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рд╡рд╣рд╛рдВ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЕрдВрджрд░ рд╕рд╛рд░рд╛ рдХрд╛рдо рдЙрд╕реА char[] рд╕рд╛рде рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдЖрдк рд╡рд┐рдзрд┐ рдХреЙрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ( invokevirtual рд╕рдВрджрд░реНрдн рдореЗрдВ invokevirtual рдкреНрд░рдХрд╛рд░ рдХреЗ invokevirtual ), рдЬреЛ рдХрд┐ aload , iload , castore рдЖрджрд┐ рдЬреИрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред - рдЬреЛ рдмрд╣реБрдд "рд╕рд╕реНрддреЗ" рд╣реИрдВ рдФрд░ рдЬреЗрд╡реАрдПрдо рджреНрд╡рд╛рд░рд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИрдВред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдм рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ: рдЖрдк рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ # getChars рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЗрдВ рдмрджрд▓рдХрд░ рдХрдИ charAt () рдХреЙрд▓ рд╕реЗ рджреВрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВ:

рд╡рд┐рдХрд▓реНрдк 7
 char[] oldChars = new char[s.length()]; s.getChars(0, s.length(), oldChars, 0); char[] newChars = new char[s.length()]; int newLen = 0; for (int j = 0; j < s.length(); j++) { char ch = oldChars[j]; if (ch >= ' ') { newChars[newLen] = ch; newLen++; } } s = new String(newChars, 0, newLen); 

рдПрдХ рдФрд░ рдЫреЛрдЯрд╛ рдЪрдорддреНрдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ: 12 рд▓рд╛рдЗрдиреЗрдВ, рд▓реЗрдХрд┐рди 2500000 , 3% , рдЕрд░реНрдерд╛рддреНред рдореВрд▓ рд╕реЗ 5 рдЧреБрдирд╛ рддреЗрдЬред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ - рдХреНрд▓рд╕реНрдЯрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреБрдЫ рдФрд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЖрд░рд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдирд╣реАрдВ, рдФрд░ рдореИрдВрдиреЗ рдЗрди рдорд╛рдЗрдХреНрд░реЛ-рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдкрд░ рдмрд╣реБрдд рд╕рдордп рд╡реНрдпрддреАрдд рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдореЗрд░реЗ рдЕрдкрдиреЗ рджрд┐рдорд╛рдЧ рдиреЗ рд╣рд╛рд░ рдорд╛рди рд▓реА рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рдЗрд╕рд╕реЗ рднреА рддреЗрдЬрд╝ рдХрд╛рдо рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдХреБрдЫ рд╕рдордп рдХреЗ рдмрд╛рдж, рдЦреЗрд▓ рд░реБрдЪрд┐ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкрд╣реЗрд▓реА рдкрд░ рд▓реМрдЯрд╛ рдФрд░ рдХреБрдЫ рдФрд░ рдкрд░рд┐рдХрд▓реНрдкрдирд╛рдПрдБ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА:

рдЦреЗрд▓ рд░реБрдЪрд┐ рдХреЛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рд╕реНрдЯреИрдХрдУрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдФрд░ рд╡рд╣рд╛рдБ рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдХреБрдЫ рдмрд▓реНрдХрд┐ рдкреНрд░рд╛рдЪреАрди, рд▓реЗрдХрд┐рди рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд, рдкреНрд░рднрд╛рд╡реА рддрд░реАрдХреЛрдВ рд╕реЗ, рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╢реБрджреНрдз рд╕реА-рд╢реИрд▓реА рдореЗрдВ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛:

рд╡рд┐рдХрд▓реНрдк 8
 int length = s.length(); char[] oldChars = new char[length]; s.getChars(0, length, oldChars, 0); int newLen = 0; for (int j = 0; j < length; j++) { char ch = oldChars[j]; if (ch >= ' ') { oldChars[newLen] = ch; newLen++; } } s = new String(oldChars, 0, newLen); 

рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдпрд╣ 3,100,000 of 3% рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рджреЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдореВрд▓ рд╕реЗ рд▓рдЧрднрдЧ 6 рдЧреБрдирд╛ рддреЗрдЬ, рдФрд░ рдкрд┐рдЫрд▓реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд╡рд┐рдХрд▓реНрдк рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 24% рддреЗрдЬред

рдореБрдЦреНрдп рд▓рд╛рдн рд╕реА рд╕реЗ рджреЛ рддреБрдЪреНрдЫ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬреНрдЮрд╛рдд рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрднреА рднреА рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рдЪрд░ рд▓рдВрдмрд╛рдИ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ (рд╕реНрдЯреНрд░рд┐рдВрдЧ # рд▓рдВрдмрд╛рдИ рдкрд░ рдХреЙрд▓ рдХреЛ рд╕рд╣реЗрдЬрдирд╛) () - рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореИрдВрдиреЗ рдЙрдореНрдореАрдж рдХреА рдереА рдХрд┐ рдЬреЗрд╡реАрдПрдо рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдХрд░реЗрдЧрд╛) рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рд╣реА рдУрд▓реНрдбрдЪреЗрдпрд░ рдПрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкреБрд░рд╛рдиреА рдФрд░ рдирдИ рд▓рд╛рдЗрди рджреЛрдиреЛрдВ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЗрд╕ рддрдереНрдп рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддреЗ рд╣реБрдП рдХрд┐ рд╣рдореЗрдВ рд╣рдореЗрд╢рд╛ рдкреБрд░рд╛рдиреА рд▓рд╛рдЗрди рд╕реЗ рдЬреЗ-рде рдХреИрд░реЗрдХреНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЬреЗ-рде рдХреИрд░реЗрдХреНрдЯрд░ рд╣рдореЗрд╢рд╛ рдЬреЗ </ рдиреНрдпреВрд▓реЗрди рдкрдврд╝рдиреЗ рдХреЗ рд╕рдордп)ред

рдпрд╣ рдмрд╣реБрдд рдЖрдЧреЗ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдиреМрд╡рд╛рдВ рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рддреНрдпрд╛рдЧ рдХрд░рдХреЗ рдФрд░ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдПрдХ рд╕реНрдерд┐рд░ рдмрдлрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдЗрд╕ рддрдереНрдп рдкрд░ рдЦреЗрд▓реЗрдВрдЧреЗ рдХрд┐ рдПрдХ рдореВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдореВрд▓ рдзрд╛рд░рд╛ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓рд╛рдЗрдиреЗрдВ рдКрдкрд░ рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 1024 рд╡рд░реНрдгред рдХреЗрд╡рд▓ рдмрд╣реБрдд рдЕрд▓рдЧ-рдерд▓рдЧ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рдмрдлрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ - рддрджрдиреБрд╕рд╛рд░, рд╣рдо рдпрд╣ рдХрд░реЗрдВрдЧреЗ:

рд╡рд┐рдХрд▓реНрдк 9
 public static char[] buf = new char[1024]; ... int length = s.length(); char[] oldChars = (length < 1024) ? buf : new char[length]; s.getChars(0, length, oldChars, 0); int newLen = 0; for (int j = 0; j < length; j++) { char ch = oldChars[j]; if (ch >= ' ') { oldChars[newLen] = ch; newLen++; } } s = new String(oldChars, 0, newLen); 

рдПрдХ рддрд┐рдкрд╣рд┐рдпрд╛ , рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 3490000 of 3% рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рджреЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред 6.7 ├Ч рд╡реГрджреНрдзрд┐ (рдпрд╛ рдкрд┐рдЫрд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ + 12.5%)ред

рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг, рдЬрд┐рд╕ рдкрд░ рдореИрдВрдиреЗ рдЕрднреА рддрдХ рд░реЛрдХ рджрд┐рдпрд╛ рд╣реИ, рджрд╕рд╡рд╛рдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рдЬрд┐рд╕ рдЕрдВрддрд┐рдо рдЪреАрдЬрд╝ рдХреЛ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╣ рдПрдХ рдирдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛ рд░рд╣реА рд╣реИ - рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджрдпрд╛ рд╣реИ, рдпрджрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕реЗ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓реА 99.9% рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕реНрдЯреНрд░рд┐рдкрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдЗрдирдкреБрдЯ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред

рд╡рд┐рдХрд▓реНрдк 10
 public static char[] buf = new char[1024]; ... int length = s.length(); char[] oldChars = (length < 1024) ? buf : new char[length]; s.getChars(0, length, oldChars, 0); int newLen = 0; for (int j = 0; j < length; j++) { char ch = oldChars[j]; if (ch >= ' ') { oldChars[newLen] = ch; newLen++; } } if (newLen != length) s = new String(oldChars, 0, newLen); 

рдпрд╣ рдереЛрдбрд╝рд╛ рдзреЛрдЦрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдЬреНрдЮрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдЕрдВрддрд┐рдо рд╕рд░реНрд╡реЛрддреНрддрдо рдкрд░рд┐рдгрд╛рдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рджреМрд░рд╛рди 5350000 рд▓рд╛рдЗрдиреЗрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ 0.1% рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╡реГрджреНрдзрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ 10 ├Ч рдпрд╛ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ + 53% рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖ рдФрд░ рдиреИрддрд┐рдХрддрд╛


рд╣рдореНрдоред рд╢рд╛рдпрдж рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рднреА рддреЗрдЬреА рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП?

PS рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЕрджреНрднреБрдд рддрд╕реНрд╡реАрд░ рдХреЗ рд▓реЗрдЦрдХ JcOlivera.com рд╣реИрдВ , рдпрд╣ рдлреЛрдЯреЛ CC-BY-NC-ND рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

Source: https://habr.com/ru/post/In126954/


All Articles