Coding Planet
5. ํน์ ๋ฌธ์ ๋ค์ง๊ธฐ - ๋ฌธ์์ ์ํ๋ฒณ ์ฌ๋ถ ๊ตฌ๋ถํ๊ธฐ Character.isAlpahbetic() ๋ณธ๋ฌธ
๐ ์ฝ๋ฉํ
์คํธ/์๊ณ ๋ฆฌ์ฆ
5. ํน์ ๋ฌธ์ ๋ค์ง๊ธฐ - ๋ฌธ์์ ์ํ๋ฒณ ์ฌ๋ถ ๊ตฌ๋ถํ๊ธฐ Character.isAlpahbetic()
jhj.sharon 2023. 5. 4. 19:52๋ฐ์ํ
1. ๋ฌธ์ ์๊ตฌ์ฌํญ
- ์์ด ์ํ๋ฒณ๊ณผ ํน์๋ฌธ์๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ฉด ์์ด ์ํ๋ฒณ๋ง ๋ค์ง๊ณ , ํน์๋ฌธ์๋ ์๊ธฐ ์๋ฆฌ์ ๊ทธ๋๋ก ์๋ ๋ฌธ์์ด์ ๋ง๋ค์ด ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
2-1. ๋์ ๋ฌธ์ ํ์ด
- ์ด ๋ฌธ์ ๋ฅผ ํ๊ธฐ์ํด์๋ ์ฃผ์ด์ง ๋ฌธ์์ด์ ๋ฌธ์๊ฐ ์์ด ์ํ๋ฒณ์ธ์ง ํน์๋ฌธ์์ธ๋ฅผ ๋จผ์ ๊ตฌ๋ถํด์ผ ํ๋ค.
- ASCII ์ฝ๋๋ฅผ ํตํด ๊ตฌ๋ถํ ์ ์๋ค.
package algorithm01;
import java.util.ArrayList;
import java.util.Scanner;
public class SpecificReverse {
public String solution(String str) {
//ArrayList ์ฌ์ฉํ๋ ์ด์ : ์์์ ์๋ฃํ์ด ๋ฌ๋ผ์
String answer ="";
//ASCII ์ฝ๋๋ก ์ํ๋ฉง ๋๋ฌธ์๋ 65~90๊น์ง์ด๋ค. ์๋ฌธ์๋ 97~122์ด๋ค.
//๋ฌธ์๋ฐฐ์ด๋ก ์ ์ฅ
char[] s = str.toCharArray();
int lt =0, rt=s.length-1;
for(char x : s) {
while(lt<rt) {
if (!(s[lt] >= 65 && s[lt] <= 90 || s[lt] >= 97 && s[lt] <= 122)) lt++;
else if(!(s[rt] >= 65 && s[rt] <= 90 || s[rt] >= 97 && s[rt] <= 122)) rt--;
else {
char tmp = s[lt];
s[lt] = s[rt];
s[rt] = tmp;
lt++;
rt--;
}
answer =String.valueOf(s);
}
}
return answer;
}
public static void main(String[] args) {
SpecificReverse T = new SpecificReverse();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
System.out.println(T.solution(str));
}
}
2-2. ๋ฉ์๋๋ฅผ ํ์ฉํ ํ์ด Character.isAlpahbetic()
- ์์ ๋ด ํ์ด๋ ASCII ์ฝ๋๊ฐ์ ์ด์ฉํด ํ์๋ค. ํ์ง๋ง Character ํด๋์ค์ ์๋ isAlpabetic()์ ํ๋ผ๋ฏธํฐ๊ฐ ์ํ๋ฒณ์ด๋ฉด true, ์๋๋ฉด false๋ฅผ ๋ฐํํ๋ค.
- if(!Character.isAlphabetic(s[lt]))๋ก ์กฐ๊ฑด์ด ํจ์ฌ ๊ฐ๋จํด์ง๋ค.
๋ฐ์ํ
'๐ ์ฝ๋ฉํ ์คํธ > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Comments