● Escape Sequence
: 문자열 안에서 특별한 의미로 해석되는 문자를 가리켜 ‘이스케이프 시퀀스’라 합니다.
대표적인 종류
- (\") : 역슬레시와 큰따옴표를 사용해서 문자열화 시켜줍니다.
문자열에 (" ") 싶을 때는?
System.out.println("친구가 어제\"잘 다녀왔어?\"라고 물어서...");
(\") 역슬레시와 큰따옴표를 사용해서 문자열화 시켜줍니다. (\"잘 다녀왔어?\")
출력값 : 친구가 어제"잘 다녀왔어?"라고 물어서...
- (\t) : 탭(tab) 만큼 띄어쓰기 합니다. (4칸)
System.out.println("친구가 어제 \t 잘 다녀왔어 \t 라고 물어서...");
(\t) 탭(tab) 만큼 띄어쓰기가 됩니다. (4칸)
출력값 : 친구가 어제 잘 다녀왔어 라고 물어서...
- (\n) : 다음줄로 넘어가서 출력 시켜줍니다.
System.out.println("친구가 어제 \n 잘 다녀왔어 \n 라고 물어서...");
(\n) 다음줄로 넘어가서 출력 시켜줍니다.
출력값 =
친구가 어제
잘 다녀왔어
라고 물어서...
- (\\) : \를 사용해야할 때, 1번 사용하면 error 가 발생하므로 \\ 두번 사용합니다.
System.out.println("C:\workspaces\JAVA"); // error
(\) 역슬레시 뒤에 ", t, n 이 올거라고 java 는 생각하는데 오지 않아서 error가 납니다.
해결점 (\\) 역슬레시 두번 사용
System.out.println("C:\\workspaces\\JAVA");
출력값 : C:\workspaces\JAVA
- (') 작은 따옴표는 문제없이 사용됩니다.
System.out.println("친구가 어제 '잘 다녀왔어? ' 라고 물어서...");
(') 작은 따옴표는 문제없이 사용합니다.
● System.out.printf;
: 메소드는 문자열의 중간에 삽입될 데이터를 가지고 하나의 문자열을 조합해서 출력합니다.
int age = 20;
double tall = 175.7;
String name = "홍길동";
위의 조건을 충족시키는 예시를 들어보겠습니다.
대표 : 문자열 %s , 정수 %d , 실수 %f
System.out.printf("제 이름은 %s 이고, 나이는 %d 살이고, 키는 %.2f 입니다.\n",name, age, tall);
%.nf 소수점 n자리 까지 출력하게 만듭니다.
출력값 : 제 이름은 홍길동 이고, 나이는 20 살이고, 키는 175.70 입니다.
기타 )
System.out.printf("%d, 0x%x, 0%o \n" , 100, 100,100);
정수의 값을 16진수로 출력 0x%x , 8진수로 출력 0%o
출력값 : 100, 0x64, 0144
System.out.printf("%g, %g \n", 0.00014, 0.000014);
출력의 대상에 따라서 %e 또는 %f 형태로 출력한다.
출력값 : 0.000140000, 1.40000e-05
● Scanner의 활용
: scanner 는 keyboard 의 입력만 받는 것이 아니라 다양한 리소스를 입력 받을 수 있도록 정의 되어있습니다.
- 문자형(수치형 데이터)으로 되어 있는 정수로 변환해서 반환합니다.
public class StringScanner {
public static void main(String[] args) {
String source = "1 5 7";
Scanner scanner = new Scanner(source);
int num1 = scanner.nextInt(); // 자료형 String 을 int 로 변환
int num2 = scanner.nextInt();
int num3 = scanner.nextInt();
int sum = num1 + num2 + num3;
System.out.printf
("문자열에 저정되어 있는 num1 = %d , num2 = %d , num3 = %d , sum = %d"
, num1, num2, num3, sum);
}
}
결과값 : 문자열에 저정되어 있는 num1 = 1 , num2 = 5 , num3 = 7 , sum = 13
- 위의 경우 String의 source를 입력 받아 int 형으로 변환해서 반환할 수 있도록 해줍니다.
● StringTokenizer
: java.util.StringTokenizer에 저장되어 있으며, 하나의 문자열을 여러 문자열로 분리할 때 사용합니다.
문자열을 분리할 때 사용되는 기준 문자 : 구분 문자(delimiter)
- 다음 예에서 ‘&’가 구분 문자
String query = "name=kitae&addr=seoul&age=21";
StringTokenizer st = new StringTokenizer(query, "&");
토큰(token) = 구분 문자로 분리된 문자열
- StringTokenizer의 정형화 되어있는 형태
package 콘솔;
import java.util.StringTokenizer;
public class TokenizerString01 {
public static void main(String[] args) {
String data = "11:22:33:44:55"; // : 단위로 데이터가 저장.
StringTokenizer st = new StringTokenizer(data, ":"); // 데이터 구분단위 지정
while(st.hasMoreTokens()) { // hasMoreTokens : 데이터가 존재하는지 확인해주는 명령어.
System.out.println(st.nextToken()); // nextToken : 데이터를 꺼내오는 명령어.
}
}
}
결과값 :
11
22
33
44
55
StringTokenizer의 사용방법 3가지
1) 구분 단위를 생략
package 콘솔;
import java.util.StringTokenizer; // ctrl + shift + o
public class TokenizerString02 {
public static void main(String[] args) {
String PhoneNum = "TEL 82-02-1234-5678";
StringTokenizer st1 = new StringTokenizer(PhoneNum);
while(st1.hasMoreTokens()) {
System.out.println(st1.nextToken());
}
결과값 : TEL
82-02-1234-5678
: 구분 단위를 여백을 구분문자로 인식하여 분리 시킵니다.
2) 구분단위 두개 이상 사용 가능
package 콘솔;
import java.util.StringTokenizer; // ctrl + shift + o
public class TokenizerString02 {
public static void main(String[] args) {
String PhoneNum = "TEL 82-02-1234-5678";
StringTokenizer st2 = new StringTokenizer(PhoneNum, " -");
while(st2.hasMoreTokens()) {
System.out.println(st2.nextToken());
}
결과값 :
TEL
82
02
1234
5678
: 여백과 - 기호를 구분문자로 인식하여 분리합니다.
3) String str, String delim, boolean returnDelims
package 콘솔;
import java.util.StringTokenizer; // ctrl + shift + o
public class TokenizerString02 {
public static void main(String[] args) {
String PhoneNum = "TEL 82-02-1234-5678";
StringTokenizer st3 = new StringTokenizer(PhoneNum, " -", true);
while(st3.hasMoreTokens()) {
System.out.println(st3.nextToken());
}
결과값 :
TEL
82
-
02
-
1234
-
5678
: 구분문자 까지 모두 같이 출력해줍니다.
'빅데이터 > JAVA' 카테고리의 다른 글
[JAVA] 메서드 오버라이딩(Method Overriding) , Instanceof연산자 (0) | 2020.05.07 |
---|---|
[JAVA] 상속(inheritance) (0) | 2020.05.05 |
[JAVA] 배열 (array) (0) | 2020.05.02 |
[JAVA] String (0) | 2020.05.02 |
[JAVA] Scanner (0) | 2020.04.30 |