(TIL) 20210702
2021. 7. 3. 00:17ㆍTIL(Today I learned)
반응형
📕Facts(한 것)
- 프로그래머스 문제 풀기
- Java 공부하기
📕Feeling(느낀 점)
Java로 프로그래머스 level1 문제를 거의 다 풀었다.(10문제 정도 남았는데, 내일 다 풀어야지...)
C++에서 되는 것이 Java에서 안되는 것이 많다.
예를 들어 String을 배열처럼 생각해서, String[0] 처럼 접근하는 방법이 불가능하다.
물론 String.charAt(0)과 같은 방법을 쓸 수 있지만, C++에서는 string.at(0)과 string[0] 모두 가능한 반면,
Java는 하나 뿐이라 불편하다.
문자열 직접 비교가 불가능하다.
이 말이 무엇이냐
public class Main{
String s = "Hello, world";
String str = "Hello, world";
// 기대한 값 = "equals"
// 출력된 값 = "Not eqauls"
if(s == str) {
System.out.println("equals");
} else{
System.out.prinln("Not equals");
}
}
위와 같은 방식으로 문자열을 비교하면, 오류가 발생한다.(정확히는 비교가 안 된다.)
그 이유는 비교 방식의 차이에 있다.
==을 통해 비교하면, java 에서는 주소값을 비교하기 때문에, 두 변수의 주소값이 다르므로 Not equals를 출력한다.
하지만 str.equals(s) 로 비교하면 값을 문자열 값 자체를 비교하기 때문에 올바르게 출력된다.
자바 역시 C처럼 단순 배열에 값을 추가할 수 없는데,
C++이 이를 vector로 극복한 것 처럼, Java는 ArrayList로 극복했다.
(다만 아쉬운 것은 프로그래머스 배열 문제들이 전부 array로 리턴을 해야해서, 그 과정이 귀찮다.)
📕Affirmation(자기 선언)
- 인생은 그리디처럼!
📕여담
반응형
'TIL(Today I learned)' 카테고리의 다른 글
(TIL) 20210704 + 네이버 웹툰 시험 후기 (0) | 2021.07.04 |
---|---|
(TIL) 20210703 (0) | 2021.07.03 |
(TIL) 20210701 (0) | 2021.07.01 |
(TIL) 20210630 (0) | 2021.06.30 |
(TIL) 20210629 (0) | 2021.06.29 |