-
etc) 백슬래시 출력, 삼항연산자, printf, 타입 간 변환방법, 아스키코드수정중/수정중2 2023. 1. 10. 17:33
1. 큰 따옴표(")나 백슬래시(\)는 단독으로 써서 출력할 수가 없다.
반드시 Escape Sequence를 실행해서 백슬래시와 문자 하나를 결합해야 한다.
백슬래시를 출력하려면 ( " \\ " ) 로 해줘야 백슬래시 ( \ ) 하나가 출력되며, 백슬래시 두 개를 출력하고 싶은경우 ( " \\\\ " ) 로 해주어야 2개가 출력된다.
2. 삼항연산자
(조건문) ? (true일 때의 연산) : (false일 때의 연산);
System.out.print((y%4==0)?((y%400==0)?"1":(y%100==0)?"0":"1"):"0");
3 printf
: 지시자를 이용해서 변수의 값을 여러 가지 형식으로 변환하여 출력
*줄바꿈하려면 지시자 '%n' 넣어주기
ex)
System.out.printf("age:%d", age); -> System.out.printf("age:%d", 14); -> System.out.printf("age:14");
출처: 자바의 정석 4-1) 소수점 아래자리 정해주기 (왜? %f는 소수점 아래 6자리까지만 출력해줘서)
%전체자리.소수점아래자리f
ex) System.out.printf("d=%14.10f", d); // 전체 14자리 중 소수점 아래 10자리
4-2) 지시자 '%s'에도 숫자를 추가해주면 원하는 만큼의 출력공간을 확보하거나 문자열의 일부만 출력할 수 있음
System.out.printf("[%s]%n", url); // 문자열의 길이만큼 출력공간을 확보
System.out.printf("[%20s]%n", url); // 최소 20글자 출력공간 확보(우측정렬)
System.out.printf("[%-20s]%n", url); // 최소 20글자 출력공간 확보(좌측정렬)
System.out.printf("[%.8s]%n", url); // 왼쪽에서 8글자만 출력
4-2-1) 다른방법
출처: www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=2824
%2d
2자리보다 작으면 여백을 추가해서 2자리를 확보 ex) _1 (_는 0x20, 스페이스, 여백을 의미)
2자리보다 크면 그대로 출력 ex) "12345"
%02d
2자리보다 작으면 '0'을 추가해서 2자리를 확보 ex) 01
2자리보다 크면 그대로 출력 ex) "12345"
%-2d (왼쪽 정렬)
2자리보다 작으면 여백을 추가해서 2자리를 확보 ex) 1_ (_는 0x20, 스페이스, 여백을 의미)
2자리보다 크면 그대로 출력 ex) "12345"
%+2d
양수인경우 '+'를 붙여줌
5. 타입 간의 변환방법
출처: 자바의 정석 기초편
1) 숫자를 문자로 변환 - 숫자에 '0'을 더한다.
(char)(3 + '0') -> '3'
2) 문자를 숫자로 변환 - 문자에서 '0'을 뺀다.
'3' - '0' -> 3
3) 숫자를 문자열로 변환 - 숫자에 빈 문자열("")을 더한다.
3+ "" -> "3"
4) 문자열을 숫자로 변환 - Integer.parselnt() 또는 Double.parseDouble()을 사용한다.
Integer.parseInt("3") -> 3
Double.parseDouble("3.14") -> 3.14
5) 문자열을 문자로 변환 - charAt(0)을 사용한다.
"3".charAt(0) - > '3'
6) 문자를 문자열로 변환 - 빈 문자열("")을 더한다.
'3' + "" -> "3"
class main public static void main(String args[]) { String str="3"; System.out.println(str.charAt(0) - '0') ; // 문자에서 0빼면, 문자->숫자로 변경됨. 따라서 3출력 System.out.println('3' - '0' +1); //4 System.out.println(Integer.parseInt("3")+1); // 4 System.out.println("3"+1); // 31 System.out.println((char)(3+'0')); // 숫자를 문자로 변환함. 3출력
6. 아스키코드
System.out.println('A'+'B') -> 131
왜? char+char - > int +int -> int의 과정을 통해 최종결과는 int형 정수 값이 된다. 'A'와 'B'의 문자코드의 값은 각각 65와 66이다.
'수정중 > 수정중2' 카테고리의 다른 글
Object 클래스(3) - clone() (0) 2023.02.03