Backend/JAVA

[JAVA] 특강 7일차 : 자바 문제풀이 & 코드리뷰

JOKUN 2022. 6. 29. 22:59

 

 

switch&forEach

📑문제

⭕정답

컴파일 에러

🔍풀이

 

컴파일 에러 없이 동작하게 하려면 final 상수로 선언해주면 된다.

package jokun.KH.test0628;

import java.util.Arrays;
import java.util.List;

public class Ex01 {
    public static void main(String[] args) {
        final String str1 = "a";
        final String str2 = "b";
        final String str3 = "c";

        List<String> list = Arrays.asList("a", "b", "c");

        list.forEach(e-> { //stream().forEach를 .forEach로 변경가능!
            switch (e){
                case str1:
                    System.out.println("switch");
                    break;
                case str2:
                    break;
                case str3:
                    break;
            }
        });
    }
}

 

 

 

 

 

properties & load & clear &set/get

📑문제

⭕정답

java 출력

🔍풀이

package jokun.KH.test0628;

import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;

public class Ex02 {
    public static void main(String[] args) throws Exception{
        Properties property = new Properties();
        File path = new File("C:\\dev\\file\\abc.properties");
        FileInputStream stream = new FileInputStream(path);
        String str = "key";
        
        property.load(stream);
        property.clear();
        property.setProperty(str, "java");

        System.out.println(property.getProperty("key"));
        
        stream.close();
    }
}

 

 

 

Collections.shuffle & forEach

📑문제

⭕정답

!sb.toString().equals(text)

🔍풀이

package jokun.KH.test0628;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Ex03 {
    public static void main(String[] args) {
        System.out.println(shuffleText("java"));
    }
    
    public static String shuffleText(String text){
        
        while (true){
            List<String> list = new ArrayList<>();
            StringBuilder sb = new StringBuilder();

            for(char ch : text.toCharArray()){
                list.add(String.valueOf(ch));
            }

            Collections.shuffle(list);
            list.forEach(e -> sb.append(e));

            if(!sb.toString().equals(text)){
                return sb.toString();
            }
        }
    }
}

 

 

 

isLetter

📑문제

⭕정답

cnt < 1

🔍풀이

package jokun.KH.test0628;

import java.util.Arrays;
import java.util.List;

public class Ex04 {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("abc", "def", "123");
        for (String str : list){
            if(!isAlphabet(str)){
                System.out.println(str);
            }
        }
    }

    private static boolean isAlphabet(String text) {
        int cnt = 0;
        for (char ch : text.toCharArray()){
            if (!Character.isLetter(ch)){
                cnt++;
            }
        }
        return cnt < 1;
    }
}

String.toCharArray() : 문자열을 쪼개서 char형으로 변환시켜줌
Charater.isLetter() : 안에 들어있는 게 문자인지 확인
* Charater - char형 래퍼클래스 
* is____() 메서드 : 특정 대상인지 여부를 판별하는 메서드

 

 

 

ZipInputStream & ZipEntry 

📑문제

⭕정답

1.txt2.txt3.txt 가 출력된다.

🔍풀이

package jokun.KH.test0628;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public class Ex05 {
    public static void main(String[] args) throws IOException {
    File file = new File("C:\\dev\\file\\file.zip");
        ZipInputStream stream = new ZipInputStream(new FileInputStream(file));
        ZipEntry entry = stream.getNextEntry();

        while (entry != null){
            System.out.println(entry.getName());
            stream.closeEntry();
            entry = stream.getNextEntry();
        }
        stream.close();
    }
}