코드업 기초 100제 (40번 까지) 문법들

Algorithm/풀었던문제 2019. 11. 25. 13:59




- 배열에 넣고 일부 숫자만 출력해보기 -


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] str) {
 
        Scanner sc = new Scanner(System.in);
        
        String a;
        
    
        a = sc.nextLine();
        
        sc.close();
        
        // 입력받은 문자를 String 타입의 a변수에 저장함
    
        // : 을 기준으로 숫자하나씩을 배열의 한 공간씩에 저장하고, 2번째 공간에 있는 숫자(분) 을 출력한다.
        String[] time = a.split(":");
        
        System.out.format("%d", Integer.parseInt(time[1]));
            
        
        /*
         * //스트링을 담아놓을 배열을 선언한다. String[] array_word;
    
         * sc.close();
     
         * //문자열로 받고, "-"를 기준으로 잘라서 사용한다는 뜻이다. String[] time = a.split("\\.");
        
         * array_word = a.split(""); //배열에 한글자씩 저장함
        
         * for (int i = 0; i < array_word.length; i++) {
        
         * System.out.format("'%s'\n", array_word[i]);
         
         * }
         */
        
        
    }
 
    
}
cs




- 형식을 변경해서 출력 -


(연월일 입력받고, 형식을 바꿔서 출력)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] str) {
 
        Scanner sc = new Scanner(System.in);
        
        String a;
        
    
        a = sc.nextLine();
        
        sc.close();
        
        // 입력받은 문자를 String 타입의 a변수에 저장함
    
        
        String[] time = a.split("\\.");
        
        //%뒤에 02를 붙이면 앞에 두자리까지 출력되게됨 7의 경우에는 앞에 0이 생략되어 있으므로 0까지 같이 출력되게 됨.
        System.out.format("%02d-%02d-%d", Integer.parseInt(time[2]), Integer.parseInt(time[1]), Integer.parseInt(time[0]));

    }

}

cs




- 범위가 큰 실수 출력 -


(소수점 이하 11자리까지 출력함)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] str) {
 
        Scanner sc = new Scanner(System.in);
        
        //java에서는 int보다 long가 더큰 데이터를 담을수 있으므로 long를 사용한다.
        
        double a;
        
    
        = sc.nextDouble();
        
        sc.close();
        
        //소수점 11자리까지만 출력
        System.out.format("%.11f", a);
    
    }
 
}
cs




- 각종 진수 변환 (2진주, 8진수, 16진수) -


Integer 클래스의 함수를 사용해서 변환한다.


Integer 클래스의 toBinaryString, toOctalString, toHexString 함수를 사용하면 


각각 2진수, 8진수, 16진수로 변환이 가능합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int i = 110;
        
        String binaryString = Integer.toBinaryString(i);     //2진수로 변환
        String octalString = Integer.toOctalString(i);        //8진수로 변환
        String hexString = Integer.toHexString(i);            //16진수로 변환
        
        System.out.println("원래 i의 값 : "+i);
        System.out.println("2진수로 변환한 값 : " +binaryString);        //127을 2진수로 변환한값을 출력
        System.out.println("8진수로 변환한 값 : " +octalString);        //127을 8진수로 변환한값을 출력
        System.out.println("16진수로 변환한 값 : " +hexString);        //127을 16진수로 변환한 값을 출력
        
        
        
        System.out.println("=================================================================");
    //=================================================================
        
        int binaryToDecimal = Integer.parseInt(binaryString, 2);    //2진수를 10진수로 변환한 값을 저장
        int binaryToOctal = Integer.parseInt(octalString, 8);        //8진수를 10진수로 변환한 값을 저장
        int binaryToHex = Integer.parseInt(hexString, 16);            //16진수를 10진수로 변환한 값을 저장
        
        System.out.println("2진수를 10진수로 변환한 값 : " +binaryToDecimal);        //2진수를 10진수로 변환한 값을 출력함
        System.out.println("8진수를 10진수로 변환한 값 : " +binaryToOctal);            //8진수를 10진수로 변환한 값을 출력함
        System.out.println("16진수를 10진수로 변환한 값 : " +binaryToHex);            //16진수를 10진수로 변환한 값을 출력함
 
cs






출처

https://dpdpwl.tistory.com/92




- 아스키코드, 유니코드를 문자나 숫자로 변환 -


 

  아스키코드란??


  컴퓨터는 숫자 0과 1밖에 모르기 때문에 문자도 숫자로 기억합니다.


  그렇기 때문에 어떤 숫자와 어떤 문자를 대응시키느냐를 이 아스키코드 방식을 사용합니다.


  아스키 코드는 0번부터 127번 까지만 사용합니다.






  유니코드란??


  모든 문자를 아스키코드에 다 담기가 힘들기 때문에 


  (문자가 많을 수록 용량도 커져야하기 때문에 용량이 작은 아스키코드로는 한계가 있음)


  그래서 용량을 크게 확장한 2byte의 유니코드가 등장 하였습니다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package test;
 
import java.io.IOException;
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] str) throws IOException {
 
        Scanner sc = new Scanner(System.in);
        
 
        System.out.println("알파벳을 입력해주세요.");
        
 
        //문자를 입력받고, 그 문자 (아스키코드) 에 해당되는 숫자를 출력합니다.
        char alpa = sc.nextLine().charAt(0);
        
        int ialpa = (int)alpa;
            
        System.out.println("문자를 숫자로 변환 : " +ialpa);
        
 
        //아까 숫자로 변경한 문자를 다시 문자(아스키코드) 로 변환해서 출력합니다.
        char calpa = (char)ialpa;
        
        System.out.println("숫자를 다시 문자로 변환 : " +calpa);
        
        

        
        sc.close();
        
 
    }
    
}
 
cs



출처

https://coding-factory.tistory.com/74



: