(알고리즘 풀면서 계속 테스트해보고 추가/수정 중!!)
문자열은 형변환이 비교적 간단한데, int는 단순하지 않다.
List배열에 int가 아닌 Integer 배열이 있고, split같이 String의 메소드를 사용하거나 나누어서 특정한 처리가 필요할 수도 있다.
대체로 int배열은 String/char등으로 변환하고 다시 int배열로 변환하는 방법을 사용한다.
Stream을 사용하기 위해서는 Stream배열로 변환하고 기능을 사용해야 한다.
문자열String과 문자열배열String[]/char[]
문자열String을 문자열배열String[]/char[]로 변환
1) String to char[]
char[] cArray = input.toCharArray();
참고 : char[] cArr = String.valueOf(num).toCharArray(); ☆num은 int
2) String to String[] (특정 조건 필요시 : split이용)
String[] arr = new String[길이];
arr = s.split("");
문자열배열String[]/char[]을 문자열String으로 변환
1) char[] to String
String str = String.valueOf(cArr);
String str = new String(cArr);
3) String[] to String (특정 조건 필요시 : join이용)
String str = String.join("", array)
문자열배열String[]과 문자열리스트List<String>
문자열배열String[]에서 문자열리스트List<String>으로 변환하기
- List<String> strList = Stream.of(strArr).collect(Collectors.toList());
문자열리스트List에서 문자열배열String[]으로 변환하기
- String[] strArr = strList.toArray(new String[]);
정수형배열int[]과 문자열String, 문자열배열String[]
정수형배열int[]를 문자열String으로 변환
- String str = Arrays.toString(array); +뒤에 .replace, .replaceAll등을 붙여서 조건을 넣을 수 있다.
- 문자열배열String[]이 필요하면 int[]→String→ String[]로 변환해서 사용할 수 있다.
문자열배열String[]을 정수형배열int[]로 변환
- int[] numArray = Stream.of(strArray).mapToInt(Integer::parseInt).toArray();
- int나 int[]을 String이나 String[]로 변환해서 사용했을 때 다시 int로 변환하기 위해 사용할 수 있다.
- 문자열배열이 아니라 문자열String을 int[]로 변환하는 경우에는 strArray대신 str.split("") 등을 사용할 수 있다.
문자열String과 정수int
문자열String을 정수int로 변환
- int num = Integer.parseInt(str);
- long num = Long.parseLong(str);
- int num = Integer.valueOf(str).intValue();
- Integer.valueOf(str)은 Integer로 변환
- 위의 케이스는 intValue()를 생략해도 자동으로 형변환됨.
정수int를 문자열String으로 변환
- String str = Integer.toString(num);
- String str = String.valueOf(num);
- int + ""
정수형배열int[]와 Integer[]
정수형배열int[]을 Integer[]로 변환
- Integer array[] = Arrays.stream(numArray).boxed().toArray(Integer[]::new);
Integer[]을 정수형배열int[]로 변환
- int numArray[] = Arrays.stream(array).mapToInt(Integer::intValue).toArray();
- int numArray[] = Arrays.stream(array).mapToInt(i→i).toArray();
정수형int와 정수형배열int[]
정수형int를 정수형배열int[]로 변환
1) for문을 이용하는 방식 : 10의 배수를 이용. 자리수를 구한 후 for문을 이용(1자리 수부터 거꾸로 계산)
2) Stream을 이용하는 방식
- split을 이용하기 위해 String으로 변환
- String[] arr = String.valueOf(n).split("");
- mapToInt를 이용하여 int[]로 변환하기 위해 Stream<String>으로 변환
- Stream<String> arr2 = Arrays.stream(arr);
- int[] num = arr2.mapToInt(Integer::parseInt).toArray();
- 한줄로 표현가능 : int[] num = Stream.of(String.valueOf(n).split("")).mapToInt(Integer::parseInt).toArray();
정수형배열int[]를 정수형int로 변환
String[]으로 변환 후 join을 이용해서 합치고 다시 int로 변환
'Language > JAVA' 카테고리의 다른 글
[프로그래머스] 정수 내림차순으로 배치하기 (0) | 2022.01.18 |
---|---|
#오름차순, 내림차순 (0) | 2022.01.18 |
#List와 배열 : 자료형 변환(캐스팅) + 컬렉션 순회하면서 특정 원소 삭제 (0) | 2022.01.18 |
[프로그래머스] 자연수 뒤집어 배열로 만들기 (0) | 2022.01.18 |
[프로그래머스] 자릿수 더하기 + Stream참고자료 (0) | 2022.01.18 |