[아스키를 이용한 문자숫자의 숫자화, 스트림의 range()는 index값으로 메소드 사용/ 단순 stream()이면 요소를 돈다 str.charAt(i), Integer.parseInt(문자요소) : int형 변환]

하얀성·2023년 7월 14일
0
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 메서드는 분할된 문자열들의 배열을 반환합니다.

Arrays.asList(...): Arrays.asList 메서드는 배열을 List 객체로 변환합니다. 따라서 이 코드는 분할된 문자열들의 배열을 List 객체로 변환합니다.

즉, List list = Arrays.asList(num_str.split("")); 코드는 num_str 문자열을 각 문자로 분할한 다음, 그 결과를 List 객체로 변환하는 역할을 합니다. 이 List 객체의 각 요소는 num_str의 각 문자를 나타냅니다.

---

** Integer.parseInt(x) // int형으로 x값 변환


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'의 ASCII 값을 뺌으로써, 해당 숫자 문자를 해당하는 정수로 변환할 수 있습니다. 예를 들어, '3' 문자에서 '0' 문자를 뺀다면, ASCII 값인 51에서 48을 뺀 3이라는 정수를 얻을 수 있습니다.

이 방법은 '0'부터 '9' 사이의 숫자 문자를 해당하는 정수로 빠르게 변환하는 방법으로 널리 사용되며, 특히 루프 내에서 문자열의 각 문자를 처리할 때 유용합니다.

                                        ---

---

Java에서 문자열 스트림을 만들기 위해서는 일반적으로 Stream을 사용합니다.

---

list.length는 List 객체에 대한 올바른 길이를 반환하지 않습니다. 리스트의 길이를 얻기 위해선 list.size() 메소드를 사용해야 합니다.

문자열을 정수로 변환하려면 Integer.parseInt 또는 Integer.valueOf 메소드를 사용할 수 있습니다.

profile
기적을 한웅큼 품은 js러버

0개의 댓글