Java
-
[JAVA] Scanner nextInt()는 '엔터'를 인식할 수 없다Java 2022. 11. 23. 16:15
Scanner 클래스는 콘솔의 입력값을 받기 위해 주로 사용되는데, 여기에 있는 메서드 중 next(), nextInt()를 포함한 nextXXX() 시리즈를 사용할 때, 바로 다음에 사용된 nextLine() 코드가 스킵되는 현상이 발생한다. 이는 nextInt가 '엔터'를 인식하지 못하기 때문이다. 인식하지 못한 엔터는 코드 허공에 둥둥 떠다니다가 다음 nextLint()을 만났을 때 그 안에 들어가게 된다. 그럼 nextLint()에서는 빈 스트링('') 인 상태에서 엔터를 인식하고 다음 코드로 넘어가게 되는 것이다. 해결방법 해결하려면 nextInt()를 쓰지 않는 것이 방법일 것 같다. 그럼 숫자는 어떻게 넣어야 할까? nextLine()으로 쓴 뒤 그것을 Integer.parseInt()로 감..
-
[JAVA] 변수 타입 확인하기Java 2022. 11. 23. 16:08
자바에서 변수 타입을 확인 코드 .getClass().getName() 예제 String str = "ABC"; // String Integer i = 123; // Integer ArrayList list = new ArrayList(); System.out.println(str.getClass().getName()); // java.lang.String System.out.println(i.getClass().getName()); // java.lang.Integer System.out.println(list.getClass().getName()); // java.util.ArrayList
-
Arrays.asList vs List.of 차이Java 2022. 11. 22. 11:51
Arrays.asList() / List.of 자바에서 Array를 List으로 변환하기 위해서는 Arrays.asList(array)를 사용합니다. Java 9 버전 부터는 List.of(array)라는 새로운 팩토리 메소드를 도입했습니다. 차이점은 무엇일까요 ? 뭐가 좋은 걸까? 변경 가능 여부 (Mutable / Immutable) Arrays.asList()로 반환된 list는 변경이 가능합니다. 하지만, List.of()에서 반환된 메서드는 변경이 불가능합니다. List list = Arrays.asList(1, 2, null); list.set(1, 10); // OK List list = List.of(1, 2, 3); list.set(1, 10); // Fails with Unsupport..
-
String.format()?Java 2022. 11. 21. 18:06
1. %d (= Integer Formatting) 10진수 integer의 형식을 설정할 때 이용합니다. int i = 23; System.out.println(String.format("%d_", i)); System.out.println(String.format("%5d_", i)); System.out.println(String.format("%-5d_", i)); System.out.println(String.format("%05d_", i)); 23_ 23_ 23 _ 00023_ %5d 와 같이 %와 d 사이에 정수를 설정하면, 글자 길이를 설정할 수 있습니다. 기본적으로 오른쪽 정렬이고, -를 붙일 경우 왼쪽정렬입니다.(ln 4~5) 표현할 숫자인 i의 길이가 5보다 작을 경우 0을 붙입니다..
-
-
[JAVA] stream 기본집계Java 2022. 11. 11. 22:42
집계(Aggregate) Stream 배열을 만든 뒤, 이것의 카운팅, 합계, 평균값, 최대값, 최소값 등과 같이 하나의 값을 산출하는 것을 말한다. 대량의 데이터를 가공해서 축소하는 리덕션(Reduction)이라고 볼 수 있다. 스트림에서 제공하는 기본 집계 스트림 집계 메서드에서는 리턴 값으로 OptionalXXX클래스를 리턴한다. OptionalXXX는 자바8 java.util 패키지의 Optional, OptionalDouble, OptionalInt, OptionalLong 클래스타입을 말한다. (value-based class) 라고 썻지만 아직까진 잘 모르겠다 ㅎㅎ;; 이 객체에서 값을 얻기 위해서는 get(), getAsDouble(), getAsInt(), getAsLong()을 호출하면..
-
[JAVA] Stream을 만드는 방법들Java 2022. 11. 11. 15:55
1. Collection을 Stream으로 변환하는 방법 01 : List 👉 Stream List list = new ArrayList(); list.add("사과"); list.add("배"); list.add("바나나"); Stream stringStream = list.stream(); stringStream.forEach(blahblah~~~~); 02 :List 👉 Stream2 List list = Arrays.asList(1,2,3,4,5); Stream stringStream = list.stream(); stringStream.forEach(blahblah~~~~); 2. 기본 배열을 Stream으로 변환하는 방법 String[] list = {"사과", "배", "바나나"}; Stre..