-
Notifications
You must be signed in to change notification settings - Fork 1.5k
/
Copy pathConvertWord.java
52 lines (50 loc) · 1.76 KB
/
ConvertWord.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package problem4;
public class ConvertWord {
// public String ConvertWord(String word) {
// char[] wordCharArray = word.toCharArray(); // 미리 선언 vs for문에서 한 번에 처리
// StringBuilder builder = new StringBuilder(1024);
// // 이 부분 리팩토링 필요 !! 23/10/18
// for (char c: wordCharArray) {
// if (c > 64 && c < 91) {
// // 대문자 > 대문자
// int T = 90 - (c - 65);
// builder.append((char)T);
// } else if (c > 96 && c < 123) {
// // 소문자 > 소문자
// int t = 122 - (c - 97);
// builder.append((char)t);
// } else if (c == 32) {
// // 스페이스
// builder.append(c);
// }
// }
// return builder.toString();
// }
public char ConvertAlphabet(char c) {
char startIdx = ' ';
char lastIdx = ' ';
// 대소문자 구분
if (Character.isUpperCase(c)) {
startIdx = 'A'; // 대문자
lastIdx = 'Z';
} else {
startIdx = 'a'; // 소문자
lastIdx = 'z';
}
return (char)(lastIdx - (c - startIdx));
}
public String IsAlphabet (String word) {
StringBuilder builder = new StringBuilder(1024);
// 2jun0 + me
for (char c: word.toCharArray()) { // 선언하지 않고 for문에서 한 번에 처리
if (Character.isAlphabetic(c)) {
// 알파벳일 경우 convert
builder.append(ConvertAlphabet(c));
} else {
// !, ' ', ~ 등등은 그대로 append
builder.append(c);
}
}
return builder.toString();
}
}