Java) Codeup 100제[21~40] toCharArray(), 숫자 형식 맞춰 출력(%3d) , n진수로 변환(valueOf,toBinaryString,parseInt)

Jay Kim·2022년 1월 13일
0

Java

목록 보기
5/9
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String word = sc.next();
        
        System.out.printf("%s",word);
    }
}

Scanner.next() => 띄어쓰기 및 줄 바꿈 인식하므로
Scanner.nextLine()으로 입력받아야 공백 포함 문장을 그대로 출력 가능

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String word = sc.nextLine(); 
        
        System.out.printf("%s",word);
    }
}

1023.실수 1개 입력 받아 부분별로 출력하기(정수,실수 나누어서)

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc= new Scanner(System.in);
  
        String num[] = sc.nextLine().split("\\.");
    
        System.out.println(num[0]);
        System.out.println(num[1]);
  
    }
    
}

@StringTokenizer 사용 경우

import java.util.Scanner;
import java.util.StringTokenizer;

public class Code{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
    
        String num = sc.nextLine();
        
        StringTokenizer st = new StringTokenizer(num,".");
        
        String [] nums = new String[2];
        
        int i = 0;
        while(st.hasMoreTokens()) {
            nums[i] = st.nextToken();
            i+=1;
        }
        System.out.println(nums[0]+"\n"+nums[1]);
    }
   
}

1024.단어 1개 입력 받아 나누어 출력하기 'a'

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc= new Scanner(System.in);
        String word =sc.next();
        int len=word.length();
        
        for(int i=0;i<len;i++){
           
            System.out.printf("\'%c\'\n",word.charAt(i));
        }
        
    }
}

1025.정수 1개 입력받아 나누어 출력하기 toCharArray()사용

String.toCharArray() = 문자열을 한 글자씩 쪼개서 char타입의 배열에 넣는 메소드
String a= "Hello World";
char [] charArr = a.toCharArray();​

  • char형 배열을 합쳐서 하나의 String(문자열)로 생성 가능
    String b= new String(charArr);​
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc= new Scanner(System.in);
        String a=sc.next();
        char [] charArr=a.toCharArray();
        
        for(int i=0; i<charArr.length ; i++){
            System.out.printf("["+charArr[i]);
            for(int k=charArr.length -1; k>i ; k--){
                System.out.printf("0");
            }
            System.out.println("]"); //대괄호는 \[ 아님
        }
    }
}

1026.시분초 입력 받아 분만 출력하기

숫자 형식 맞춰서 출력하기
1) 숫자 : (오른쪽 정렬) 출력할 최대 자릿수를 지정함.
예) %3d : 최대 3자리의 정수를 출력하되, 다 출력하고도 자리가 남으면 공백으로 채우고 오른쪽 정렬해 출력.

2) 0 :(전체 자릿수가 지정된 경우) 출력하고 남는 자리를 공백 대신 0으로 출력.
예) %03d : 최대 3자리의 정수를 출력하되, 다 출력하고 남는 자리는 0으로 채우고 오른쪽 정렬해 출력.

3)- : (왼쪽 정렬) (전체 자릿수가 지정된 경우) 출력 후 남는 자리를 공백으로 채우고 왼쪽정렬해 출력.
예) %-4s : 최대 4자리의 문자열을 출력하되, 다 출력하고 남는 자리는 공백으로 채우고 왼쪽정렬해 출력.

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        String Time[]= sc.next().split("\\:");
        
        int min=Integer.parseInt(Time[1]);
        
        System.out.printf("%1d",min);
    }
}

1027.년월일(yyyy.mm.dd)->일월년(dd-mm-yyyy)

import java.util.Scanner;
 
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String arr = sc.next();
        String[] ar = arr.split("\\.");
        System.out.printf("%s-%s-%s",ar[2],ar[1], ar[0]);
    }
}
import java.util.Scanner;
 
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String arr = sc.next();
        System.out.printf("%s",  arr);
    }
}
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        Double num= sc.nextDouble();
        
        System.out.printf("%.11f", num);
    }
}
  1. Long = 8byte로 int보다 더 큰 수
import java.util.Scanner;
 
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        long num = sc.nextLong();
        System.out.println(num);
    }
}

1031.8진수로 출력하기

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        int n;
        Scanner sc = new Scanner(System.in);
        
        n= sc.nextInt();
        
        System.out.printf("%o", n);
    }
}

1032.16진수(소문자)로 출력하기 -> %x

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        int n;
        Scanner sc = new Scanner(System.in);
        
        n= sc.nextInt();
        
        System.out.printf("%x", n);
    }
}

1033.16진수(대문자)로 출력하기 -> %X

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        int n;
        Scanner sc = new Scanner(System.in);
        
        n= sc.nextInt();
        
        System.out.printf("%X", n);	//대문자 X
    }
}

1034.8진수로 입력된 정수 1개를 10진수로 바꾸어 출력

2진수, 8진수 16진수를 Scanner로 받으려면 String 데이터타입 또는 int데이터타입을 이용하면된다.

  • String에서 n진수로 변환
    2진수 : Integer.valueOf(String s, 2); return : int
    8진수 : Integer.valueOf(String s, 8); return : int
    16진수 : Integer.valueOf(String s, 16); return : int

  • 10진수에서 n진수로 변환 (10진수를 2, 8, 16 진수로 변환하는 소스코드)
    2진수 : Integer.toBinaryString(int i), return : String
    8진수 : Integer.toOctalString(int i), return : String
    16진수 : Integer.toHexString(int i), return : String

  • n진수에서 10진수로 변환
    2진수 : Integer.parseInt(String s, 2);, return : int
    8진수 : Integer.parseInt(String s, 8);, return : int
    16진수 : Integer.parseInt(String s, 16);, return : int
    2진수처리 비교 - 정수를 입력받아 2진수 비트연산하여 10진수로 출력하기
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String octalNum = scan.nextLine();
        int num = Integer.parseInt(octalNum, 8);
        System.out.print(num);
    }
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        String dnum = sc.nextLine();
        int num = Integer.valueOf(dnum,16);
        
        System.out.printf("%o", num);
    }
}

1036.영문자 1개 정수로 출력

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        char c = sc.nextLine().charAt(0);
        int a=(int)c;
        System.out.println(a);
    }
}
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
       	int num= sc.nextInt();
        char a=(char)num;
        System.out.println(a);
    }
}

1038,1039. 2개의 정수 입력 받아 합 구하기

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        double a,b;
        Scanner sc = new Scanner(System.in);
        a = sc.nextDouble();
        b = sc.nextDouble();
        
        System.out.printf("%.0f",a+b);
    }
}

1040.정수 입력 받아 부호 바꿔서 출력

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int a;
        a=sc.nextInt();
        System.out.printf("%d",-a);
    }
}

0개의 댓글