java 문자 형변환을 위한 4가지 솔루션 정리
// 문자열 => List ------------------------- // 1. ','구분 나눠서 split배열 생성후 리스트에 넣기 String str = "a,b,c,d,e,f,g"; String[] str2 = { "A", "B", "C" }; List<String> list = Arrays.asList(str.split(",")); List<String> list2 = Arrays.asList(str2); List<String> list3 = Stream.of(str2).collect(Collectors.toList()); //[a, b, c, d, e, f, g] // A B C // 2. 노멀 솔루션 String string = "Techie Delight"; List<Character> chars = new ArrayList<>(); for (char ch: string.toCharArray()) { chars.add(ch); } //[T, e, c, h, i, e, , D, e, l, i, g, h, t] // 3. Java 9 String string = "Techie Delight"; List<Character> chars = string.chars() // IntStream .mapToObj(e -> (char)e) // Stream<Character> .collect(Collectors.toList()); //or List<Character> chars = IntStream.range(0, string.length()) .mapToObj(string::charAt) .collect(Collectors.toList()); // 4. AbstractList Interface public static List<Character> convert(String string) { return new AbstractList<Character>() { @Override public Character get(int index) { return string.charAt(index); } @Override public int size() { return string.length(); } }; } public static void main(String[] args) { String string = "Techie Delight"; System.out.println(convert(string)); } // List => 문자열 ----------------------------- List<String> list = new ArrayList<>(); String[] temp = list.toArray(new String[list.size()]); //or int[] arr = list.stream().mapToInt(Integer::intValue).toArray(); // 정수 배열 => List ------------------------------ int[] arr = {1, 2, 3}; // 1. 반복문 사용하기] List<Integer> intList = new ArrayList<>(); for(int element : arr) { intList.add(element); } //2. Stream 사용하기 | boxed()메소드는 Primitive Stream 값들은 Wrapper Class로 바꿔줌 // collect(Collectors.toList())를 이용하여 stream을 list로 변경 List<Integer> intList = Arrays.stream(arr).boxed().collect(Collectors.toList()); // List를 정수 배열로 변환------------------------------- List<Integer> list = new ArrayList<>(); int[] temp = list.stream().mapToInt(i->i).toArray();