문자열을 정수로! Integer.parseInt()
class Solution {
public int solution(String s) {
int answer = 0;
answer = Integer.parseInt(s);
return answer;
}
}
정수배열에 포함 되있는것 찾기 (+찾은값더하기)
IntStream.of(arr).anyMatch(x -> x == i)
int sum = 0;
for (int i=0; i<=9; i++) {
int j = i;
if (!IntStream.of(numbers).anyMatch(x -> x == j)) {
sum += j;
}
}
return sum;
String.valueOf()
"null"이라는 문자열로 처리
파라미터가 null이면 문자열 "null"을 만들어서 반환한다-> 항상 String 형태로 출력
char[] arr = phone_number.toCharArray();
String arr2 = String.valueOf(arr);
이런 차이 때문에 valueOf은 "null".equals(string) 형태로 다시 한번 체크를 해야한다. 또한, null로 인해 발생된 에러는 시간이 지나고 디버깅하기 어렵다는 문제가 있다. 그래서 NPE(Null PointerException)를 방지해야하는 경우에서는 String.valueOf()를 사용하는 것이 좋다.
Arrays.sort(?);
int[] arra = answer.stream().mapToInt(Integer::intValue).toArray();
Arrays.sort(arra);
list배열을 int배열로 바꾸는 법과 배열오름차순을 몰랐다.
stream().sorted라는 메서를 사용했지만 그대로 였다. 그 이유는 list에서 사용하는 메서드였기 때문이었다.
그래서 stream().mapToInt라는 메서드를 사용하여 먼저 int배열로 바꾼후,
그 int배열변수를 Arrays.sort(여기)에 넣어야 된다는 것을 알게됬다.
문자배열로 변환하여 하나하나 for문으로 체크하려했더니 비교가 안 되서 힘들었다. 하지만 쉬운 방법이 있었다.
유니코드 문자48은 숫자0, 57은 숫자9이다.
문자열을 char[]로 바꾼후
c >= 48 && c<=57
로 체크하면 정말 쉬웠다.
문자열 비교를 해도 결과값이 다르지 않아 혼동하던중 자바 강의에서 들었던 equals가 문득 생각났다.
==은 비교하고자하는 대상의 주소값을 비교하는 '연산자'이다
equals()는 객체! 내용 자체만을 비교한다.
까먹지 말고 다시 보자.
구글링으로 처음 보는 메서드를 발견했다!
String.join("",listArray)
문자열로 변환하는데 각각 간격도 정할 수 있는 매우 유용한 메서드같다!