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());
}
}
반응형