๋์๋ฌธ์
Strign์ ๋๋ฌธ์/์๋ฌธ์๋ก ๋ณํ
- str.toUpperCase()
- str.toLowerCase()
char๋ฅผ ๋๋ฌธ์/์๋ฌธ์๋ก ๋ณํ
- Character.toUpperCase(c);
- Character.toLowerCase(c);
String์์ ๋->์ , ์->๋ ๋ณํ
- String์ char๋ฐฐ์ด๋ก ๋ณํํ๊ณ char[] = str.toCharArray()
- ํฅ์๋ for๋ฌธ์ ์ฌ์ฉํ๋ฉด์
- ๋์๋ฌธ์ boolean ๊ฒฐ๊ณผ์ ๋ง์ถฐ์ if(Char)
- ์ ์ ํ ๋ณํ Character.toUpperCase(x) / Character.toLowerCase(x)
- ๋ณํํ ๋ฌธ์์ด์ String answer์ +=๋ก ๋์
์์คํค ๋๋ฒ๋ฅผ ์ฌ์ฉํ ์๋ ์์
- A=65, Z=90
- a=97, z=122
- ๋์ ์ฐจ์ด๋ 32
- ์๋ฌธ์๋ฉด answer += (char)(x-32) / ๋๋ฌธ์๋ฉด answer -= (char)(x+32)
๋จ์ด ์๋ฅด๊ธฐ
๋จ์ด์ค ๊ฐ์ฅ ๊ธด ๋จ์ด ์ฐพ๊ธฐ. ๊ธธ์ด๊ฐ ๊ฐ๋ค๋ฉด ๊ฐ์ฅ ์์ ์๋ ๋จ์ด
- ๊ณต๋ฐฑ ๊ธฐ์ค์ผ๋ก ์๋ผ์ String[] ๋ง๋ค๊ธฐ
String[] strArr = str.split(" ");
- ์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ
String answer = ""; int maxLength = 0; String[] strArr = str.split(" "); for(String x : strArr){ int len = x.length; if(len > maxLength) { maxLength= len; //๊ฐ์ฅ ๊ธด ๊ธธ์ด ๊ฐฑ์ answer = x; //๊ทธ ๋จ์ด๋ก ๊ต์ฒด } }
- ๋๋ฒ์งธ ๋ฐฉ๋ฒ : ๊ณต๋ฐฑ์ ์ธ๋ฑ์ค๋ฒํธ๋ฅผ ์ฐพ๊ธฐ -> ๊ทธ ์ธ๋ฑ์ค ์๊น์ง ์๋ฅด๋ฉด ๋จ์ด
String answer = "";
int maxLength = 0;
int pos = 0;
while( (pos = str.indexOf(' ')) != -1 ){
String tmp = str.substring(0, pos);
int len = tmp.length();
if(len > maxLength){
maxLength= len; //๊ฐ์ฅ ๊ธด ๊ธธ์ด ๊ฐฑ์
answer = x; //๊ทธ ๋จ์ด๋ก ๊ต์ฒด
}
str = str.substring(pos+1);
}
//๊ทธ๋ฌ๋ ์ด๊ฒฝ์ฐ ๊ฐ์ฅ ๋ง์ง๋ง ๋จ์ด๋ ๊ณต๋ฐฑ ์์ด์ ๋น๊ต ๋ชปํจ. ๊ทธ๋์ ๋ฐ๋ณต๋ฌธ ๋ฐ๊นฅ์์ ํ ๋ฒ ๋ ํ์ธ
if(str.length() > maxLength) answer = str;
๋จ์ด ๋ค์ง๊ธฐ, StringBuilder
๋จ์ด ๋ค์ง๊ธฐ
- StringBuiler์ ๋ค์ง๋ ๋ฉ์๋
String tmp = new StringBuilder(x).reverser.toString();
- String๋ฅผ ํ๋์ char[]๋ก ๋ณํํด์ ๋งจ์์ธ๋ฑ์ค&๋งจ๋ค์ธ๋ฑ์ค ๊ฐ ๊ตํํ๊ธฐ
- ์ธ๋ฑ์ค๋ startIndex++; endIndex--; ๊ทธ๋ฆฌ๊ณ ๋์ด ๊ฐ์ผ๋ฉด(์ฐจ์ด๋์ง์์ผ๋ฉด) ๋ฉ์ถ๊ธฐ
for(String x : str){
char[] s = x.toCharArray();
int startIndex = 0;
int endIndex = x.length()-1;
while(startIndex < endIndex){
char tmp = s[startIndex];
s[startIndex] = s[endIndex];
s[endIndex] = tmp;
startIndex++;
endIndex---;
}
String tmp = String.valueOf(s);
andswer.add(tmp); //๋น ArrayList answer์ ๋ด๊ธฐ
}
- ํ์ด์ฌ์์๋ ๊ฐ์ฅ ์ผ์ชฝ๋ฌธ์ lt, ๊ฐ์ฅ ์ค๋ฅธ์ชฝ๋ฌธ์ rt๋ผ๊ณ ํ๋ค๊ณ ํด์ ๋๋ ์ด์ ๋ณ๊ฒฝํจ
ํน์ ๋ฌธ์ ๋ค์ง๊ธฐ
- Q.์์ด ์ํ๋ฒณ๊ณผ ํน์๋ฌธ์ ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ฉด, ์์ด ์ํ๋ฒณ๋ง ๋ค์ง๊ธฐ
- ์์ (lt)a # b ! G E * T @ S(rt)
- lt์ rt๊ฐ ๋ ๋ค ์ํ๋ฒณ์ผ ๋ ๊ตํ = lt์ rt๊ฐ ๋ ๋ค ํน์๋ฌธ์๊ฐ ์๋ ๋
- if์ ์กฐ๊ฑด์ lt ํน์๋ฌธ์? -> ํน์๋ฌธ์๋ฉด ๊ทธ๋ฅ ์ฆ๊ฐ. ์๋๋ฉด else๋ก rt ๋น๊ต
String answer;
char[] sArr = str.toCharArray();
int lt = 0;
int rt = str.length()-1;
while( lt < rt ){
if(!Character.isAlphabetic( sArr[lt] )) lt++;
else if(!Character.isAlphabetic( sArr[rt] )) rt--;
else {
char tmp = s[lt];
s[lt] = s[rt];
s[rt] = tmp;
lt++;
rt--;
}
}
answer = String.valueOf(sArr);
์ค๋ณต ๋ฌธ์ ์ ๊ฑฐ
indexOf(char) ์ด์ฉํ๊ธฐ
- indexOf๋ ๊ทธ ๋ฌธ์๋ฅผ ๊ฐ์ฅ ๋จผ์ ์ฐพ์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํ
- for๋ฌธ๊ณผ str.charAt(i) ๋ฌธ์๋ฅผ ํ๋์ฉ ์ํํ๋๋ฐ
- ์ธ๋ฑ์คi์ str.indecOf(str.charAt(i))๊ฐ ๊ฐ์ผ๋ฉด
- ๊ทธ ๋ฌธ์๋ ์ฒซ์์ผ๋ก ๋ฐ๊ฒฌ๋ ๊ฒ
- ์ธ๋ฑ์คi์ str.indecOf(str.charAt(i))๊ฐ ๋ค๋ฅด๋ฉด
- ๊ทธ ๋ฌธ์๋ ์ฒซ๋ฒ์งธ ๋ฌธ์๊ฐ ์๋๊ฒ = ์ค๋ณต์ด๋ ์๋ฏธ
- ๊ฐ์ ๋๋ง ๋ฌธ์ ๋์ ํ๋ฉด ๋จ