1. 입력된 문자열의 공백 제거 (StringTokenizer)
apple pen --> applepen
hello world --> helloworld
Scanner sc = new Scanner(System.in);
String a = sc.next();
String b = sc.next();
System.out.print(a + b);
요렇게 간단히 쓸 수 있는 코드지만,
저번에 공부했던 BufferedReader와 StringBuilder를 써먹어보고 싶어서 코드 좀 길게 짜봤다.
아주 재밌다.
결과는 같다!
public static void main(String[] args) throws IOException {
// 입력 스트림 열기
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력값을 공백으로 끊어 저장하기
StringTokenizer st = new StringTokenizer(br.readLine());
String a = st.nextToken();
String b = st.nextToken();
// 문자열 잇기
StringBuilder sb = new StringBuilder();
sb.append(a).append(b);
String c = sb.toString();
// 입력 스트림 닫기
br.close();
// 출력 스트림 열기
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 값 출력하기
bw.write(c);
// 출력 스트림 닫기
bw.close();
}
2. 문자열 돌리기 (toCharArray())
a
abc --> b
c
Scanner sc = new Scanner(System.in);
String a = sc.next();
char[] chList = a.toCharArray();
for (char ch : chList) {
System.out.println(ch);
}
(+) {} 없는 for문
for (char ch : a.toCharArray())
System.out.println(ch);
이건 무슨 for 문이냐 중괄호 어디감
인덱스가 필요하다 -> 기존 for문 for (int i = 0; i < n; i ++)
이외의 경우 -> forEach문 for (타입 변수명 : 배열 or 리스트)
까지는 알고 있었음.
for문 코드가 한 줄이면 중괄호 없이 그냥 땀 띡 해도 되는거였어?
(+) charAt()
int n = a.length();
for(int i = 0; i<n; i++){
System.out.println(a.charAt(i));
}
하나씩 떼어서 바로 출력해버리는 코드.
이런 함수를 바로 for문이나 sysout에 넣어도 되지만 변수에 담아서 넣는게 더 안정적이라고 유튜브에서 봄
그래서 charAt 보다 toCharArray()로 배열에 값을 넣고 출력하는게 더 낫지 않나? 싶은 생각.
(+) split()
String[] arr = a.split("");
for (String s : arr) {
System.out.println(s);
}
요런 방법이...
for(String s : a.split("")){
System.out.println(s);
}
더 간결하게 줄인거.
그래도 변수에 담아서 쓰는게 더 낫다. 가독성 측면에서! 아마도?
클린코드 책 역시 읽어보긴 해야할듯
3. 홀짝 구분
짝수 -> n is even
홀수 -> n is odd
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if ((n % 2) == 0) {
System.out.print(n + " is even");
} else {
System.out.print(n + " is odd");
}
(+) 삼항 연산자
System.out.print(n + " is "+(n % 2 == 0 ? "even" : "odd"));
ㅋㅋㅋ...ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 행님
아~~ 이거 if 조건문 문제잖아~~! 하고 타다다닥 쳤는데
삼항 연산자 생각을 못했네
반성합니다
이참에 복습하겠습니다
조건 ? 참 : 거짓
(+) {} 없는 if문
System.out.print(n + " is ");
if (n % 2 == 0) System.out.println("even");
else System.out.println("odd");
if문도 한 줄 짜리는 중괄호{} 없이 땀 띡 할 수 있음..!