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

+ Recent posts