작성일 댓글 남기기

[java] 문자 형변환 관련 4가지 솔루션

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();

 

답글 남기기