Contents
접기
자바 주요 API
1) String 관련 메소드,생성자 ***
- StringBuffer, StringBuilder
- StringToknizer
2) Wrapper 클래스
- Primitive 타입의 자료형을 객체화 시킨 클래스
- Integer, Double
* primitive data type : = 원시 자료형은 프로그래밍 언어가 제공하는 자료형 중 하나로서 내장형/ 기본형 으로 불린다.
3) Math 클래스
메소드 | 메소드 |
char charAt(int index) | static String format(Locale l, String format, Object... args) |
int codePointAt(int index) | int indexOf(int ch) |
int compareTo(String anotherString) | boolean isEmpty() |
String concat(String str) | int lastIndexOf(int ch) |
boolean contains(CharSequence s) | int length() |
boolean endsWith(String suffix) | String[] split(String regex) |
boolean equals(Object anObject) | String substring(int beginIndex) |
String trim() | String substring(int beginIndex, int endIndex) |
Iterator
: ArrayList, HashSet 과 같은 컬렉션을 반복하는 데 사용할 수 있는 객체를 가리킨다.
package struct;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class IteratorTest {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("사과");
list.add("배");
list.add("딸기");
list.add("바나나");
list.add("포도");
list.add("딸기");
Iterator<String> iter = list.iterator();
// iterator = 포인터를 계속 움직인다.
while (iter.hasNext())
System.out.println(iter.next());
// 마지막 데이터가 있는지 체크 후 가져오는 것
//map 은 직접적으로 key를 전달할 수 없기 때문에 set을 사용한다.
Set<Integer> keys = map.keySet();
Iterator<Integer> iter2 = keys.iterator();
// Iterator<Integer> iter2 = map.keySet().iterator(); : 같은 의미
while(iter2.hasNext()) {
Integer key = iter2.next(); // map 에 키가 된 Integer 값을 가져온다.
String value = map.get(key);
System.out.println(key + " : " + value);
}
}
}
코드 | 의미 |
while (iter.hasNext()) System.out.println(iter.next()); |
마지막 데이터가 있는지 체크 후 true 면 출력 |
Iterator<Integer> iter2 = map.keySet().iterator(); | map 은 직접적으로 key 를 전달할 수 없다. 때문에 set 을 사용하여 key 를 전달한다. |
while(iter2.hasNext()) { Integer key = iter2.next(); String value = map.get(key); |
map 에 키가 된 Integer 값을 가져온다. |
String
package api;
public class StringTest02 {
//String
public static void main(String[] args) {
String str = "무궁화 꽃이 피었습니다.";
// 시퀀스 객체 => 순서가 존재한다.
char ch = str.charAt(4);
// char charAt(int index)
System.out.println(ch);
// int codePointAt(int index)
int code = str.codePointAt(3);
// 공백의 코드값 = 32
System.out.println(code);
코드 | 의미 |
char ch = str.charAt(4); | "무궁화 꽃이 피었습니다." 중 4번째에 위치한 꽃을 가져온다. |
int code = str.codePointAt(3); | 공백의 코드값(32) 반환 |
compareTo()
- 바깥 코드값("Korea") - 안 코드값("korea")
- 같은 건 스킵한다.(다른 데이터 값이 나올때까지)
- 모두 같으면 0 이 반환된다. => 즉 동일한 데이터다
- 대문자가 더 작은 값이라고 인식한다. (예 A: 65, a :97)
// int compareTo(String anotherString)
int diff = "Korea".compareTo("korea");
System.out.println(diff);
코드 | 의미 |
int diff = "Korea".compareTo("korea"); | 값의 크기 비교 |
equals() 와의 차이 - equals() : 같다 or 다르다의 여부만 확인 - compareTo() : 외에도 앞이 큰지(양수), 뒤가 큰지(음수), 혹은 같은지(0) 까지 확인 |
// String concat(String str)
String temp = "월드".concat("컵");
System.out.println(temp);
// boolean contains(CharSequence s) : 특정단어가 포함되는지
boolean result = str.contains("장미");
System.out.println(result);
// boolean endsWith(String suffix) : 특정단어로 끝나는지
result = str.endsWith("다!");
System.out.println(result);
result = str.startsWith("장미");
System.out.println(result);
// int indexOf(int ch) : 특정문자의 위치값 반환
int index = str.indexOf('강'); // -1 반환 : 단어 존재하지 않음
// int index = str.indexOf('꽃');
System.out.println(index);
// lastIndexOf : 마지막 인덱스 찾을때
// boolean isEmpty()
result = "".isEmpty(); // 전달 인자를 주지 않음
System.out.println(result); // " ".isEmpty 는 값이 존재하는 거다.
// String trim() : 다시 문자열로 반환
result = "19980713 ".trim().isEmpty(); // 앞뒤 문맥을 자른다.
System.out.println(result); //
System.out.println("19980713 ".length());
//isBlank() : ws 가 포함되어있으면 true 가 나온다.
코드 | 의미 |
boolean result = str.contains("장미"); | 특정단어가 포함되는지 |
result = str.endsWith("다!"); result = str.startsWith("장미"); |
특정단어로 끝나는지 특정단어로 시작하는지 |
int index = str.indexOf('강'); | 특정문자의 위치값 반환 ( -1 반환 : 단어 존재하지 않음) |
lastIndexOf() | 마지막 인덱스 찾을때 |
result = "".isEmpty(); | 비어있는지 확인 (전달 인자를 주지 않음) - isBlank() : ws 가 포함되어있으면 true 가 나온다. |
result = "19980713 ".trim().isEmpty(); | 앞뒤 문맥을 잘라서 다시 문자열로 반환 |
System.out.println("19980713 ".length()); | 길이 잴때 length() (괄호 필요) |
특정데이터 에서 범주안에 들어있는지 (문자열의 전체길이까지 봐야 한다.)
"123".charAt(0) ==> char c ='1';
c >= '0' ;
// String substring(int beginIndex) : 부분 문자열
String carNum = "125허2422";
// String carNum = "111허2222";
String front = carNum.substring(0,3);
String back = carNum.substring(4);
System.out.println(front);
System.out.println(back);
if(!(isNumeric(front) && isNumeric(back))) {
System.out.println("올바른 자동차 번호가 아닙니다.");
} else {
System.out.println("올바른 자동차 번호입니다.");
}
} // main
// 문자열이 섞여 있는지 확인하여 숫자만 있으면 true 아니면 false
public static boolean isNumeric(String temp) {
// char ch = 0;
for(int i = 0; i < temp.length(); i++) {
if(!( temp.charAt(i) >= '0'&& temp.charAt(i) <= '9')) //숫자로 변환할 수 있는 값만
return false;
}
return true;
}
코드 | 의미 |
String front = carNum.substring(0,3); String back = carNum.substring(4); |
부분 문자열 (문자열 자르기) |
StringBuffer
StringBuffer 는 자기 자신을 반환하기 때문에 크기가 커질 수 있는 것이다
package api;
// import java.lang 패키지 내부의 클래스는 import 하지 않아도 자동 import
public class StringBufferTest {
public static void main(String[] args) {
StringBuffer buff1 = new StringBuffer(); // 기본값
StringBuffer buff2 = new StringBuffer("울릉도"); // 초기값 존재
StringBuffer buff3 = new StringBuffer(100); // 용량 지정
System.out.println("buff1의 용량: " + buff1.capacity()); // 세팅이 16자까지
System.out.println("buff2의 용량: " + buff2.capacity());
System.out.println("buff3의 용량: " + buff3.capacity());
// 체인
buff2.append(" 동남쪽") //자기자신을 반환
.append(" 뱃길따라 ")
.append(200)
.append("리")
.append(" 외로운 섬하나 새들의 고향")
.append(" 그 누가 아무리 자기네 땅이라고 우겨도")
.append(" 독도는 우리땅");
System.out.println("buff2의 용량: " + buff2.capacity());
// 글자포함 + 여유공간
System.out.println("buff2의 길이: " + buff2.length());
// 글자만
buff2.trimToSize();
System.out.println("buff2의 용량: " + buff2.capacity());
System.out.println("buff2의 길이: " + buff2.length());
// 남아있는 버퍼를 지움
String str = buff2.toString();
// 추가할 글자가 없기때문에 문자로 바꾸는 작업을 한다.
// 가장 마지막에 진행
}
}
코드 | 의미 |
- StringBuffer buff1 = new StringBuffer(); - StringBuffer buff2 = new StringBuffer("울릉도"); - StringBuffer buff3 = new StringBuffer(100); |
- 기본값 - 초기값 존재 - 용량 지정 |
System.out.println("buff2의 용량: " + buff2.capacity()); System.out.println("buff2의 길이: " + buff2.length()); |
- 글자 포함 여유 공간의 개수 - 글자 개수만 |
buff2.trimToSize(); | 남아있는 버퍼를 지운다. (여유공간을 지우는 것) |
String str = buff2.toString(); | 추가할 글자가 없기때문에 문자로 바꾸는 작업을 한다. (가장 마지막에 진행) |
Wrapper
Wrapper Class 는 primitive data type을 객체화시킨 클래스를 일컫는 용어이다.
- Byte, Short, Integer, Long, Character
- Float, Double
- Boolean
package api;
public class WrapperTest {
public static void main(String[] args) {
// Integer i1 = new Integer(1);
// 17버전 에서는 deprecated 되었음
Integer i1 = 1; // 숫자가 바로 객체화 된다
// 기본자료형이 객체로 변경 (Auto Boxing)
Integer i2 = 12;
int result = i1 + i2;
// 객체가 자동으로 기본 자료형으로 변경 (Auto Unboxing)
}
}
Auto Boxing | Auto Unboxing |
원시 타입의 값을 해당하는 wrapper 클래스의 객체로 변경 = 기본 자료형이 객체로 변경 |
Wrapper 클래스 타입을 원시 타입으로 변경 = 객체가 자동으로 기본 자료형으로 변경 |
Integer i1 = 1; | int result = i1 + i2; |
'국비 교육 > 백엔드(Java, Spring)' 카테고리의 다른 글
[자바] 예외 Exception (0) | 2024.01.30 |
---|---|
[자바] String 예제 - 주민번호 검증 프로그램 (0) | 2024.01.29 |
[자바] ArrayList, HashSet, HashMap (0) | 2024.01.29 |
[자바] 다형성(polymorphism) 예제 - 도형 프로그램 설계 (0) | 2024.01.29 |