※ p가변인자 함수의 매개변수 개수가 고정적이지 않고, 변할 수 있다는 의미
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | package day05; public class Ex01 { public static void main(String[] args) { // 1) 문자열을 원하는 서식에 맞춰서 만들어주는 String.format() String name = "아메리카노"; int price = 1500; System.out.printf("%s : %,d원\n",name, price); // printf() 문자열을 서식에 맞춰서 화면에 출력한다 // String.format()은 같은 방법으로 문자열을 만들어서 반환한다 (변수에 저장 가능) String result = String.format("%s : %,d원\n", name, price); System.out.println(result); // 서식 제어 문자 /* * 제어문자 자료형 * %s String 문자열을 표현하는 서식문자 * %d 정수 정수를 10진수 형태로 표현 * %f 실수 실수를 표현 * %c 글자 정수를 코드에 맞는 글자로 표현(char) * %x 정수 정수를 16진수 형태로 표현 * * 1) % 와 글자 사이에 정수를 넣어서 자리차지할 칸 수를 지정할 수 있다 * 2) 정수는 %02d 와 같이 2자리로 출력하고, 값이 부족하면 0으로 채울 수 있다 * 3) 실수는 %.2f 와 같이 소수점 이하 자리를 2자리까지만 표현할 수 있다 * 4) 숫자는 %,d 와 같이 천단위 구분기호를 자동으로 처리할 수 있다 * * * */ System.out.printf("[%s]\n", "Java"); System.out.printf("[%10s]\n", "Java"); System.out.printf("[%-10s]\n", "Java"); System.out.printf("[%d]\n", 1326000); System.out.printf("[%9d]\n", 1326000); System.out.printf("[%09d]\n", 1326000); System.out.printf("[%,09d]\n", 1326000); System.out.printf("[%02d : %02d]\n", 127 / 60 , 127 % 60); // 가변인자 함수의 매개변수 개수가 고정적이지 않고, 변할 수 있다는 의미 System.out.printf("[%f]\n", 3.14); // 자릿수를 지정하지 않으면 소수점 이하 6자리까지 출력 System.out.printf("[%f]\n",3.1415926535); System.out.println(3.1415926535); System.out.printf("[%.4f]\n",3.1415926535); System.out.printf("[%.4f]\n",100.0 ); // 정수를 넣으면 예외 발생 System.out.printf("[%c]\n",65); System.out.printf("[%c]\n",66); System.out.printf("[%c]\n",44032); System.out.printf("[%c]\n",44033); System.out.printf("[%c]\n",'나'); System.out.printf("[%c]\n",'나'+ 1); } } | cs |
매우 중요하니 꼭 기억하자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | package day05; public class Ex02 { static int sum(int... args) { // 자바에서 특정 객체의 자료형을 알고싶다면, getClass() // System.out.println(args); // System.out.println(args.getClass()); // 패키지.클래스 // System.out.println(args.getClass().getSimpleName()); // 클래스 int total = 0; for(int i = 0; i < args.length; i++) { total += args[i]; } return total; } public static void main(String[] args) { // 가변 인자 : 함수 호출 때 전달하는 인자의 개수가 변할 수 있다 int n1 = sum(1); int n2 = sum(1, 2); int n3 = sum(1, 2, 3); int n4 = sum(1, 2, 3, 4 ); System.out.printf("%d, %d, %d, %d\n", n1, n2, n3, n4); } } | cs |
예시) 문자열 = "root:x:0:0:root:/root:/bin/bash"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | public class Ex03 { public static void main(String[] args) { // 문자열 관련 함수 String s1 = "root:x:0:0:root:/root:/bin/bash"; String[] arr = s1.split(":"); // 여기서 ":" 역할을 '구분자'라고 명칭한다 for(int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } System.out.println(); String s2 = "https://search.naver.com/search.naver?query=아이유&where=image"; String[] a1 = s2.split("\\?"); // ? 는 별도의 기능이 있어서 제거함 String[] a2 = a1[1].split("&"); for(int i = 0; i < a2.length; i++) { String[] a3 = a2[i].split("="); System.out.printf("%s : %s\n", a3[0] , a3[1]); System.out.println(); // substring : 문자열 빼기 (-) // a.substring(int beginIndex, int endIndex) String s3 = s2.substring(8, 24); // ~ 부터 ~ 까지 문자열을 잘라주는 기능을 가졌다 System.out.println(s3); int beginIndex = s2.indexOf("search"); int endIndex = s2.lastIndexOf("search") - 1; System.out.printf("%d ~ %d\n", beginIndex, endIndex); String s4 = s2.substring(beginIndex, endIndex); System.out.println(s4); // 문자열의 일치 비교 String t1 = "apple"; String t2 = new String("apple"); String t3 = "apple"; System.out.printf("%s, %s, %s\n", t1, t2, t3 ); // 바라보는 대상이 일치하는가 System.out.println("t1 == t2 : " + (t1 == t2)); System.out.println("t1 == t3 : " + (t1 == t3)); // 각 대상의 내용이 똑같은가 System.out.println("t1.equals(t2) : " + t1.equals(t2)); System.out.println("t1.equals(t3) : " + t1.equals(t3)); } } } | cs |
반대로 Tip : equals 의 반대는!?!!?
바로
if(!string.equlas("문자열")ex )
if(!str1.equals("AA")) {
System.out.println("AA가 아닙니다");
}
출처: https://kmj1107.tistory.com/207 [토순이네집:티스토리]
for (int i = 0; i < String.length; i++ ) {}
위와 같은 경우 <= 을 사용하면 없는 위치를 지정하여 무조건 에러가 나므로 주의해야한다.
생성자는 new 연산자를 통해서 인스턴스를 생성할 때 반드시 호출이 되고 제일 먼저 실행되는 일종의 메소드(하지만 메소드와는 다르다.)이다. 생성자는 인스턴스 변수(필드 값 등)를 초기화 시키는 역할을 한다.