KEEP GOING

[JAVA] 자주 사용하는 문법 정리 (형변환, Scanner, 구분자 지정) 본문

language/java

[JAVA] 자주 사용하는 문법 정리 (형변환, Scanner, 구분자 지정)

jmHan 2022. 6. 6. 11:50
반응형

[String을 int로, int를 String으로]

1. 숫자를 문자열로 변환

 1) Integer.toString(숫자) 

Integer 클래스의 toString() 메소드 사용

public class IntToString {    
	public static void main(String[] args) {        
    	int val1 = 123;        
        int val2 = -123;         
        String str1 = Integer.toString(val1);       
        String str2 = Integer.toString(val2);         
        System.out.println(str1); //"123"
        System.out.println(str2); //"-123"    
    }
}

 2) int + ""

문자열 + int인 경우 문자열을 리턴한다는 특징을 이용한 방법이다.

public class IntToString {    
	public static void main(String[] args) {        
    	int val1 = 123;        
        int val2 = -123;         
        String str1 = val1 + "";       
        String str2 = val2 + "";         
        System.out.println(str1); //"123"
        System.out.println(str2); //"-123"    
    }
}

2. 문자열을 숫자로 변환

1) Integer.parseInt(문자열) 

parseInt() 메소드는 java.lang.Integer 클래스의 static 메소드이다.

문자열을 매개변수로 입력받은 후, Integer로 int 값을 리턴한다.

public class StringToInt {
	public static void main(String[] args) {
        String str1 = "123";        
        String str2 = "-123";       

        int val1 = Integer.parseInt(str1);        
        int val2 = Integer.parseInt(str2);         
        System.out.println(val1); // 123        
        System.out.println(val2); // -123    
    }
}

 

2) Integer.valueOf(문자열) 

valueOf() 메소드는 java.lang.Integer 클래스의 static 메소드이다.

valueOf() 메소드는 Integer Object를 리턴하지만 parseInt() 메소드는 primitive type인 int를 리턴한다.

Integer Object를 int로 형변환하기 위해 intValue() 사용

public class StringToInt {
	public static void main(String[] args) {
        String str1 = "123";        
        String str2 = "-123";       

        int val1 = Integer.valueOf(str1).intValue();   
        int val2 = Integer.valueOf(str2).intValue();         
        System.out.println(val1); // 123        
        System.out.println(val2); // -123    
    }
}

 

 

[Scanner 클래스로 입력 받기]

1. Scanner 클래스

 1) Scanner 클래스의 특징

- 원하는 데이터 타입의 값을 Scanner 의 메소드를 사용하여 입력받을 수 있다.

- util 패키지에 존재한다. lang 패키지의 클래스가 아니기에 import를 통해 호출해야 한다.

- 공백(띄어쓰기) 또는 개행(줄 바꿈)을 기준으로 읽는다.

- System.in은 사용자로부터 입력을 받기 위해 사용하는 입력 스트림이다.

import java.util.Scanner;
 
public class ScannerExam {
	public static void main(String[] args) {
 
		Scanner sc = new Scanner(System.in);	// Scanner 객체 생성
 
		byte a = sc.nextByte(); 		// byte 형 입력 및 리턴
		short b = sc.nextShort(); 		// short 형 입력 및 리턴
		int c = sc.nextInt(); 			// int 형 입력 및 리턴
		long d = sc.nextLong(); 		// long 형 입력 및 리턴
 
		float e = sc.nextFloat(); 		// float 형 입력 및 리턴
		double f = sc.nextDouble(); 	// double 형 입력 및 리턴
 
		boolean g = sc.nextBoolean(); 	// boolean 형 입력 및 리턴
 
		String h = sc.next(); 			// String 형 입력 및 리턴 : 공백을 기준으로 한 단어 읽기
		String i = sc.nextLine(); 		// String 형 입력 및 리턴 : 개행을 기준으로 한 줄 읽기
	}
}

 

 2) next()와 nextLine()의 차이 

- next()는 공백을 기준으로 단어 한 개만 입력으로 받는다.

- nextLine()은 한 줄로 입력된 모든 문장을 읽는다.

import java.util.Scanner;
 
public class ScannerExam {
	public static void main(String[] args) {
 
		Scanner sc = new Scanner(System.in);	// Scanner 객체 생성

		String h = sc.next(); 			// String 형 입력 및 리턴 (공백을 기준으로 한 단어를 읽음)
		String i = sc.nextLine();
		
		// String 형 입력 및 리턴 (개행을 기준으로 한 줄을 읽음)
		System.out.println(h);
		System.out.println(i);
	}

 

[문자열 구분자로 붙이기]

 1) StringJoiner

- util 패키지에 존재하는 클래스이다.

- 여러 문자열들을 붙일 때 구분자를 지정할 수 있다.

import java.util.StringJoiner;
 
public class SjExam {
	public static void main(String[] args) {
 
		StringJoiner sj = new StringJoiner("-");
		sj.add("칙칙");
		sj.add("폭폭");
		sj.add("기차가");
		sj.add("곧");
		sj.add("출발할");
		sj.add("예정입니다.");
		
		System.out.println(sj.toString());
	}
 
}

 2) StringBuffer

- 여러 문자열을 붙일 수 있는 클래스 

- 구분자를 따로 추가해야 돼서 번거롭다.

package study;

public class Test6 {
	public static void main(String[] args) {
 
		StringBuffer sj = new StringBuffer("알립니다! ");
		sj.append("칙칙");
		sj.append("-");
		sj.append("폭폭");
		sj.append("-");
		sj.append("기차가");
		sj.append("-");
		sj.append("곧");
		sj.append("-");
		sj.append("출발할");
		sj.append("-");
		sj.append("예정입니다.");
		
		System.out.println(sj.toString());
	}
 
}
반응형
Comments