import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
class Solution {
public int solution(String num_str) {
List<String> list = Arrays.asList(num_str.split(""));
return list.stream().map(x -> Integer.parseInt(x)).reduce(0,(a,b) -> a+b);
}
}
List<String> list = Arrays.asList(num_str.split(""));
이 코드는 num_str이라는 문자열을 각 문자로 분할한 다음, 그 결과를 리스트로 변환하는 역할을 합니다.
num_str.split(""): split 메서드는 문자열을 특정 구분자를 기준으로 분할합니다. 여기서 구분자는 빈 문자열("")입니다. 즉, 이 코드는 num_str을 각 문자로 분할합니다. split 메서드는 분할된 문자열들의 배열을 반환합니다.
즉, List list = Arrays.asList(num_str.split("")); 코드는 num_str 문자열을 각 문자로 분할한 다음, 그 결과를 List 객체로 변환하는 역할을 합니다. 이 List 객체의 각 요소는 num_str의 각 문자를 나타냅니다.
class Solution {
public int solution(String num_str) {
int answer = 0;
for(int i = 0; i < num_str.length(); i ++){
answer += (int)(num_str.charAt(i)) - '0';
}
return answer;
}
}
num_str.charAt(i) 이건 뭔의미지
ChatGPT
charAt(i) 메서드는 Java String 클래스의 메서드입니다. 이 메서드는 주어진 인덱스(이 경우에는 i)에 위치한 문자를 반환합니다. 예를 들어, "Hello"라는 문자열이 있을 때, charAt(0)는 'H'를, charAt(1)는 'e'를 반환합니다.
즉, num_str.charAt(i)는 num_str이라는 문자열에서 i번째 위치에 있는 문자를 반환합니다.
---
문자열 'num_str'에서 각 문자는 '0'부터 '9'사이의 문자입니다. 이들은 ASCII 테이블에서 특정 위치에 있으며, '0'의 ASCII 값은 48, '1'의 ASCII 값은 49, ..., '9'의 ASCII 값은 57입니다.
따라서,
이 방법은 '0'부터 '9' 사이의 숫자 문자를 해당하는 정수로 빠르게 변환하는 방법으로 널리 사용되며, 특히 루프 내에서 문자열의 각 문자를 처리할 때 유용합니다.
---