рдЬрд╛рд╡рд╛ рдЪреИрд▓реЗрдВрдЬрд░реНрд╕ # 2: рд╕реНрдЯреНрд░рд┐рдВрдЧ рддреБрд▓рдирд╛
рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рджреЗрд░ рд╣реЛ рдЪреБрдХреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд▓ рд╣реА рдирдП рдзрд╛рдЧреЗ "рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░" рдХреЗ рдмреАрдЪ рдПрдХ рджреВрд╕рд░рд╛ рдкрд╛рда рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдРрд╕рд╛ рд╣реИ, рдЬреАрд╡рди рдореЗрдВ рдЫреЛрдЯреА рдЪреАрдЬреЗрдВ, рд▓реЗрдХрд┐рди рдЕрдм рддрдХ рд╣рдо рдЬрд╛рд╡рд╛ рдЪреИрд▓реЗрдВрдЬрд░реНрд╕ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдЖрдкрдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЬрд╛рд╡рд╛ рдореЗрдВ, String
рд╡рд░реНрдЧ рдПрдХ char
рд╕рд░рдгреА ( рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдиреЛрдЯ - рдЬрд╛рд╡рд╛ 9 рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ byte
рд╕рд░рдгреА рд╣реИ, рдЬрд╛рд╡рд╛ 9 рдореЗрдВ рдХреЙрдореНрдкреИрдХреНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рджреЗрдЦреЗрдВ ) рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рддрд╛ рд╣реИ ред рд╕рд░рд▓ рд╢рдмреНрджреЛрдВ рдореЗрдВ, String
рдПрдХ рдРрд╕рд╛ рд╡рд░реНрдг рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рдмреНрджреЛрдВ, рд╡рд╛рдХреНрдпреЛрдВ рдпрд╛ рдЕрдиреНрдп рд░рдЪрдирд╛рдУрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рд╕рдмрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ String
рд╡рд░реНрдЧ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ред

рдЬрдм рдЖрдк рдЬрд╛рд╡рд╛ рдореЗрдВ String
рд╡рд░реНрдЧ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ char
рдХреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
public String(char value[]) { this(value, 0, value.length, null); }
рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рднреМрддрд┐рдХ рд╡рд╕реНрддреБ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ: рдПрдХ рдорд╢реАрдиред рдХреНрдпрд╛ рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдПрдХ рдХрд╛рд░ рд╣реБрдб рдХреЗ рддрд╣рдд рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ рддрд╛рдХрд┐ рдЗрд╕реЗ рдбреНрд░рд╛рдЗрд╡ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ? рдмреЗрд╢рдХ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрд╛рд░ рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ: рдЧреИрд╕ рдкреЗрдбрд▓, рдмреНрд░реЗрдХ рдФрд░ рд╕реНрдЯреАрдпрд░рд┐рдВрдЧ рд╡реНрд╣реАрд▓ред рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ: рддреНрд╡рд░рдг, рдмреНрд░реЗрдХ рд▓рдЧрд╛рдирд╛, рдмрд╛рдПрдВ рдореБрдбрд╝рдирд╛, рджрд╛рдПрдВ рдореБрдбрд╝рдирд╛ред рдСрдмреНрдЬреЗрдХреНрдЯ рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рднреА рдпрд╣реА рд╕рдЪ рд╣реИред
рдЬрд╛рд╡рд╛ рдЪреИрд▓реЗрдВрдЬрд░реНрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкрд╣рд▓рд╛ рд▓реЗрдЦ рд╡рд┐рдзрд┐ рдЕрдзрд┐рднрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдерд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ String
рд╡рд░реНрдЧ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдЖрдкрдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдЪреАрд▓рд╛ рдмрдирд╛ рд╕рдХрддреА рд╣реИ:
public String(String original) {} public String(char value[], int offset, int count) {} public String(int[] codePoints, int offset, int count) {} public String(byte bytes[], int offset, int length, String charsetName) {}
String
рдХреНрд▓рд╛рд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреВрд▓ рдХреНрдпрд╛ рд╣реИ?
String
рд╡рд░реНрдЧ рдпрдХреАрдирди рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╡рд░реНрдЧ рд╣реИред рдпрджрд┐ рд╣рдо рд╣рд░ рдмрд╛рд░ рдЬрдм рд╣рдо String
рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЧрддрд┐рд╢реАрд▓ рдореЗрдореЛрд░реА (рдореЗрдореЛрд░реА рд╣реАрдк) рдореЗрдВ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдмрд╣реБрдд рд╕рд╛рд░реА рдореЗрдореЛрд░реА рдмрд░реНрдмрд╛рдж рдХрд░ рджреЗрдВрдЧреЗред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреВрд▓ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдорд╛рди рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдкрдВрдХреНрддрд┐ рдкреВрд▓ рдореЗрдВ рд▓рд╛рдЗрдиреЗрдВ
рдпрджреНрдпрдкрд┐ рд╣рдордиреЗ Duke
рдФрд░ Juggy
рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ String
рдЪрд░ рдмрдирд╛рдП, рдХреЗрд╡рд▓ рджреЛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ рдФрд░ рдбрд╛рдпрдиреЗрдорд┐рдХ рдореЗрдореЛрд░реА (рдвреЗрд░) рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред рдкреНрд░рдорд╛рдг рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред (рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВ, " ==
" рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЛ рд╡рд╕реНрддреБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдФрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рд╕рдорд╛рди рд╣реИ рдпрд╛ рдирд╣реАрдВред)
String juggy = "Juggy"; String anotherJuggy = "Juggy"; System.out.println(juggy == anotherJuggy);
рдпрд╣ рдХреЛрдб true
рд╡рд╛рдкрд╕ рдЖрдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ String
рдореЗрдВ рджреЛ String
рд╡реИрд░рд┐рдПрдмрд▓ рдПрдХ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдХреЗ рдЕрд░реНрде рд╕рдорд╛рди рд╣реИрдВред
рдЕрдкрд╡рд╛рдж new
рдСрдкрд░реЗрдЯрд░ рд╣реИред
рдЕрдм рдЗрд╕ рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ - рдпрд╣ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рди рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрдВрддрд░ рд╣реИред
String duke = new String("duke"); String anotherDuke = new String("duke"); System.out.println(duke == anotherDuke);
рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреЛрдб true
рд▓реМрдЯреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред new
рдСрдкрд░реЗрдЯрд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рдПрдХ рдирдпрд╛ String
рдСрдмреНрдЬреЗрдХреНрдЯ рдмрди рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬреЗрд╡реАрдПрдо рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛ред
рджреЗрд╢реА рддрд░реАрдХреЗ
рдЬрд╛рд╡рд╛ рдореЗрдВ рдореВрд▓ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╡реЗ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рд╕реА рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдХреА рдЬрд╛рдПрдВрдЧреА, рдЖрдорддреМрд░ рдкрд░ рд╕реНрдореГрддрд┐ рдХреЗ рдкреНрд░рдмрдВрдзрди рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рдеред
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреВрд▓ рдФрд░ intern()
рд╡рд┐рдзрд┐
рдПрдХ рдкреВрд▓ рдореЗрдВ рддрд╛рд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрдВрдЯрд░реНрдирд┐рдВрдЧ рдирд╛рдордХ рдПрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдЬрд╛рд╡рджреЛрдХ рдиреЗ рд╣рдореЗрдВ intern()
рдкрджреНрдзрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛ рд╣реИ:
public native String intern();
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреВрд▓ рдореЗрдВ рддрд╛рд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП intern()
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдкреВрд▓ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдПрдХ рдкрдВрдХреНрддрд┐ рдореМрдЬреВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдпрд╣ рдкреВрд▓ рдореЗрдВ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рдмрдирд╛рддрд╛ рд╣реИред рд░реЛ рдкреВрд▓ рддрд░реНрдХ рдлреНрд▓рд╛рдИрд╡реЗрдЯ рдкреИрдЯрд░реНрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
рдЕрдм, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрдм рд╣рдо рджреЛ рд▓рд╛рдЗрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП new
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ,
String duke = new String("duke"); String duke2 = new String("duke"); System.out.println(duke == duke2);
new
рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рддреБрд▓рдирд╛ true
рд╣реЛрдЧреАред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ intern()
рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреВрд▓ рдореЗрдВ рд╣реИред
String
рдХрдХреНрд╖рд╛ рдореЗрдВ equals
рдкрджреНрдзрддрд┐
equals()
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рджреЛ рд╡рд░реНрдЧ рд╕рдорд╛рди рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рдЪреВрдВрдХрд┐ equals()
Object
рдХреНрд▓рд╛рд╕ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕ рдХреЛ рдпрд╣ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП equals()
рдкрджреНрдзрддрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдмреЗрд╢рдХ, String
рдУрд╡рд░рд░рд╛рдЗрдбреНрд╕ рдХреЗ equals()
ред
рдПрдХ рдмрд╛рд░ рджреЗрдЦ рд▓реЛ:
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String aString = (String)anObject; if (coder() == aString.coder()) { return isLatin1() ? StringLatin1.equals(value, aString.value) : StringUTF16.equals(value, aString.value); } } return false; }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, String
рд╡рд░реНрдЧ рдХреЗ рдореВрд▓реНрдп рдХреА рддреБрд▓рдирд╛ equals()
рдорд╛рдзреНрдпрдо рд╕реЗ рдХреА рдЬрд╛рддреА equals()
, рди рдХрд┐ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рд╕рдВрджрд░реНрдн рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдЕрд▓рдЧ рд╣реИрдВ; рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред
рд╕рд╛рдорд╛рдиреНрдп String
рддрд░реАрдХреЗ
рд╕реНрдЯреНрд░рд┐рдВрдЧ рддреБрд▓рдирд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдПрдХ рдФрд░ рдмрд╛рдд рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
String
рд╡рд░реНрдЧ рдХреЗ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рд╕реНрдЯреНрд░рд┐рдВрдЧ рддреБрд▓рдирд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░реЗрдВ
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЖрдкрдиреЗ рдПрдХ рдЫреЛрдЯреА рд╕реА рдкрд╣реЗрд▓реА рдХреЛ рд╣рд▓ рдХрд░рдХреЗ String
рдХрдХреНрд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реАрдЦрд╛ред
рдЗрд╕ рдХрд╛рд░реНрдп рдореЗрдВ, рдЖрдкрдиреЗ рдЬрд┐рди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╕реАрдЦрд╛ рд╣реИ, рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдХреНрдпрд╛ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдЪрд░ result
рдХрд╛ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
public class ComparisonStringChallenge { public static void main(String... doYourBest) { String result = ""; result += " powerfulCode ".trim() == "powerfulCode" ? "0" : "1"; result += "flexibleCode" == "flexibleCode" ? "2" : "3"; result += new String("doYourBest") == new String("doYourBest") ? "4" : "5"; result += new String("noBugsProject") .equals("noBugsProject") ? "6" : "7"; result += new String("breakYourLimits").intern() == new String("breakYourLimits").intern() ? "8" : "9"; System.out.println(result); } }
рдирд┐рд╖реНрдХрд░реНрд╖ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?
- A: 02468
- B: 12469
- C: 12579
- рдбреА: 12568
рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕рд╣реА рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдм рдХреНрдпрд╛ рд╣реБрдЖ? String
рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдордЭрдирд╛
рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ:
result += " powerfulCode ".trim() == "powerfulCode" ? "0" : "1";
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо false
, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм trim()
рд╡рд┐рдзрд┐ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рд╣рдЯрд╛ рджреЗрддреА рд╣реИ, рддреЛ рдпрд╣ new
рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдпрд╛ String
рдмрдирд╛рддрд╛ рд╣реИред
рдЖрдЧреЗ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ:
result += "flexibleCode" == "flexibleCode" ? "2" : "3";
рдпрд╣рд╛рдВ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ; рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдкрдВрдХреНрддрд┐ рдкреВрд▓ рдореЗрдВ рд╕рдорд╛рди рд╣реИрдВред рдпрд╣ рддреБрд▓рдирд╛ true
ред
рдлрд┐рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИ:
result += new String("doYourBest") == new String("doYourBest") ? "4" : "5";
рджреЛ рдирдИ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП new
рд▓реАрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЙрдирдХреЗ рдореВрд▓реНрдп рд╕рдорд╛рди рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрджрд┐ рдореВрд▓реНрдп рд╕рдорд╛рди рд╣реИрдВ, рддреЛ рднреА рддреБрд▓рдирд╛ false
рд╣реЛрдЧреАред
рдЕрдЧрд▓рд╛:
result += new String("noBugsProject") .equals("noBugsProject") ? "6" : "7";
рдЪреВрдВрдХрд┐ рд╣рдордиреЗ equals()
рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдореВрд▓реНрдп рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рдПрдЧреА, рд╡рд╕реНрддреБ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдирд╣реАрдВред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╡рд╕реНрддреБрдУрдВ рдпрд╛ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореВрд▓реНрдп рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдирддреАрдЬрд╛ true
ред
рдЕрдВрдд рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИ:
result += new String("breakYourLimits").intern() == new String("breakYourLimits").intern() ? "8" : "9";
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рджреЗрдЦрд╛, intern()
рд╡рд┐рдзрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреВрд▓ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбрд╛рд▓рддреА рд╣реИред рджреЛрдиреЛрдВ рд▓рд╛рдЗрдиреЗрдВ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ true
ред
рдЖрдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рддреНрд░реБрдЯрд┐рдпрд╛рдБ
рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рджреЛ рд▓рд╛рдЗрдиреЗрдВ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╕рдорд╛рди рдореВрд▓реНрдп рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ new
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╣рдореЗрд╢рд╛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди рд╕рдорд╛рди рд╣реЛрдВред
рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрднреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП String
рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЦрд╝рд╛рд╕рд┐рдпрдд рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рд╡рд┐рдзрд┐ рд▓рд╛рдЗрди рдореЗрдВ рдХреБрдЫ рдмрджрд▓рддреА рд╣реИ, рддреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрджрд░реНрдн рд╣реЛрдВрдЧреЗред
рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг:
System.out.println("duke".trim() == "duke".trim());
рдпрд╣ рддреБрд▓рдирд╛ рд╕рд╣реА рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ trim()
рд╡рд┐рдзрд┐ рдПрдХ рдирдИ рд░реЗрдЦрд╛ рдирд╣реАрдВ рдмрдирд╛рддреА рд╣реИред
System.out.println(" duke".trim() == "duke".trim());
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд╣рд▓реА trim()
рд╡рд┐рдзрд┐ рдПрдХ рдирдИ рд▓рд╛рдЗрди рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдзрд┐ рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░реЗрдЧреА рдФрд░ рдЗрд╕рд▓рд┐рдП рд▓рд┐рдВрдХ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдВрдЧреЗред
рдЕрдВрдд рдореЗрдВ, рдЬрдм trim()
рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдирдИ рд▓рд╛рдЗрди рдмрдирд╛рддрд╛ рд╣реИ:
рддрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдпрд╛рдж рд░рдЦрдирд╛
рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЖрдкрд╕ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрдВрдХреНрддрд┐ рдЕрд╡рд╕реНрдерд╛ рдХреЛ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ред
рдореЗрдореЛрд░реА рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, JVM рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреВрд▓ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдирдИ рд▓рд╛рдЗрди рдмрдирд╛рддреЗ рд╕рдордп, JVM рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдЕрдкрдиреА рд╡реИрд▓реНрдпреВ рдФрд░ рдкреЙрдЗрдВрдЯреНрд╕ рдЪреЗрдХ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдкреВрд▓ рдореЗрдВ рдЗрд╕ рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ JVM рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рдмрдирд╛рддрд╛ рд╣реИред
рдСрдкрд░реЗрдЯрд░ " ==
" рд╡рд╕реНрддреБ рд╕рдВрджрд░реНрднреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред equals()
рд╡рд┐рдзрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреА рд╣реИред рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдПрдХ рд╣реА рдирд┐рдпрдо рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛ред
new
рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдвреЗрд░ рдореЗрдВ рдПрдХ рдирдИ рд▓рд╛рдЗрди рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА (рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдиреЛрдЯ - рдпрд╣ рдореВрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреВрд▓ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рд╣реИ, рдзрдиреНрдпрд╡рд╛рдж zagayevskiy ), рднрд▓реЗ рд╣реА рдПрдХ рд╣реА рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рд░реЗрдЦрд╛ рд╣реЛред
рдЬрд╡рд╛рдм рд╣реИ
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЙрддреНрддрд░ рдбреА рд╣реИред рдирд┐рд╖реНрдХрд░реНрд╖ 12568 рд╣реЛрдЧрд╛ред
рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП ...