입출력 예제
class Main {
public static void main(String[] args) {
// new Sol1().run(); // 입출력 scanner
// new Sol2().run(); // 입출력 + 반복
// new Sol3().run(); // StringBuilder 적용 결과물 출력을 위한 변환
// new Sol4().run(); // ArrayList
// new Sol5().run(); // ArrayList+ Stream
}
}
class Sol1{
public void run() {
Scanner sc = new Scanner(System.in);
System.out.printf("숫자를 입력해주세요(-1 : 종료) : ");
int num1 = sc.nextInt();
System.out.printf("숫자를 입력해주세요(-1 : 종료) : ");
int num2 = sc.nextInt();
System.out.printf("입력을 종료합니다.\n");
System.out.printf("입력한 숫자(오름차순) : %d, %d\n",num1,num2);
System.out.printf("프로그램을 종료합니다.\n");
sc.close(); //scanner 종료
}
}
class Sol2{
public void run() {
Scanner sc = new Scanner(System.in);
int[] num_array = new int[10];
int i =0;
Arrays.fill(num_array, -2);
while(true){
System.out.printf("숫자를 입력해주세요(-1 : 종료) : ");
int num = sc.nextInt();
sc.nextLine();
if (num == -1){
System.out.printf("프로그램을 종료합니다.\n");
break;
}
num_array[i] = num;
i++;
}
System.out.printf(Arrays.toString(num_array));
// System.out.printf("입력한 숫자(오름차순) : %d, %d\n",num1,num2);
sc.close(); //scanner 종료
System.out.printf("프로그램을 종료합니다.\n");
}
}
class Sol3{
public void run() {
Scanner sc = new Scanner(System.in);
int[] num_array = new int[10];
int i =0;
int x = -1;
Arrays.fill(num_array, x);
while(true){
System.out.printf("숫자를 입력해주세요(-1 : 종료) : ");
int num = sc.nextInt();
sc.nextLine();
if (num == -1){
System.out.printf("프로그램을 종료합니다.\n");
break;
}
num_array[i] = num;
i++;
}
// 작은수 부터 정렬한다.
Arrays.sort(num_array);
// array에 들어 있는 값을 스트링빌더로 string 출력하게 변환
StringBuilder sb = new StringBuilder();
for (int num : num_array) {
// 기존 array에 채워진 -1 생략
if (num == -1) continue;
// sb에 초기에 ,가 안찍히도록
if (sb.isEmpty() == false) {
sb.append(", ");
}
sb.append(num);
}
System.out.printf("입력한 숫자(오름차순) : %s\n", sb);
System.out.println("프로그램을 종료합니다.");
sc.close();
}
}
ArrayList 도입
class Sol4 {
public void run() {
Scanner sc = new Scanner(System.in);
List<Integer> numbers = new ArrayList<>();
while (true) {
System.out.printf("숫자를 입력해주세요(-1 : 종료) : ");
int num = sc.nextInt();
if (num == -1) {
System.out.println("입력을 종료합니다.");
break;
}
numbers.add(num);
}
Collections.sort(numbers);
StringBuilder sb = new StringBuilder();
for (int number : numbers) {
if (number == -1) continue;
if (sb.isEmpty() == false) {
sb.append(", ");
}
sb.append(number);
}
System.out.printf("입력한 숫자(오름차순) : %s\n", sb);
System.out.println("프로그램을 종료합니다.");
sc.close();
}
}
Stream 도입 > sort + 출력변환
class Sol5 {
public void run() {
Scanner sc = new Scanner(System.in);
List<Integer> numbers = new ArrayList<>();
while (true) {
System.out.printf("숫자를 입력해주세요(-1 : 종료) : ");
int num = sc.nextInt();
if (num == -1) {
System.out.println("입력을 종료합니다.");
break;
}
numbers.add(num);
}
//stream 도입
String str = numbers.stream()
.sorted()
.map(e ->""+e) // 안의 숫자를 문장화
.collect(Collectors.joining(", "));
System.out.printf("입력한 숫자(오름차순) : %s\n", str.toString());
System.out.println("프로그램을 종료합니다.");
sc.close();
}
}