반응형
Overloading
OOP의 특성중 Polymorphism을 지원하기 위한 방법 중 하나.
같은 이름의 Method로 서로 다른 기능을 호출하는 Mechanism
특징
- Method의 Parameter로 구별하여 호출한다.
- Retrun type이 다른 경우 사용 할 수 없다.
- 과도한 overloading은 가독성을 저해시킨다.
- 애매한 overloading은 지양해야한다.
- ex) myfunction(int a, int b);
- ex) myfunction(short a, short b)
String
String을 처리하기 위한 Class.
String은 종료문자(null 문자, 일반적으로 0x00)를 포함하는 문자의 집합을 의미한다.
생성
Sugar Code의 특징
아래의 두 code는 서로 다르게 출력한다.
최적화를 수행하기 위해 sugar code 사용시 문자열이 같다면 동일한 참조값으로 처리한다.
기능
기능 | Code |
Switch | case에서 string 사용 가능 (JAVA 7 이상) |
String의 길이 | str.length(); |
String 연결 | str.concat(); //concatenaing |
String 추출 | str.substring(); |
String 비교 | str.equals(), str.compareTo(), str.compareTognoreCase() |
Primitive type을 String type으로 변환 | static String.valueOf() |
String의 변환 | str.replace() |
▶ Switch
public class swtich {
public static void main(String[] args) {
String day = "monday";
switch (day) {
case "monday" :
System.out.println("MONDAY");
break;
}
}
}
▶ valueOf()
public class strValueof {
public static void main(String[] args) {
// String으로 전환해준다.
int a = 10;
String str = String.valueOf(a);
System.out.println(str);
}
}
▶ substring()
public class strSubstring {
public static void main(String[] args) {
String day = "monday";
//2번 인덱스 부터 리턴
System.out.println(day.substring(2));
//2번 인덱스 부터 4번 인덱스 까지 리턴
System.out.println(day.substring(2, 4));
}
}
▶ replace()
public class strReplace {
public static void main(String[] args) {
//지정한 문자를 전환시켜준다.
String str = "hello my name is".replace('h', 'H');
System.out.println(str);
}
}
▶ equals()
public class strEquals {
public static void main(String[] args) {
String day = "monday";
String day1 = "wednesday";
if(true == day.equals(day1)){
System.out.println("Same");
}
else{
System.out.println("Different");
}
}
}
▶ concat()
public class strConcat {
public static void main(String[] args) {
String day = "monday";
String newday = day.concat("는 하체");
System.out.println(newday);
System.out.println("my name is".concat("Jung"));
}
}
▶ compareTo()
public class strCompare {
public static void main(String[] args) {
String day = "monday";
String day1 = "1wednesday";
int comp = day.compareTo(day1);
System.out.println(comp);
if(comp == 0){
System.out.println("Same");
}
else if(comp > 0){
System.out.println("사전앞에 있는 경우");
}
else if(comp < 0){
System.out.println("사전상 뒤에 있는 경우");
}
}
}
StringBuilder
- String buffer를 직접 제어 가능한 Class.
- String Class와 달리 문자를 추가 및 삭제가 가능.
- String Buffer Class와 기본적으로 같으나 Thread-Safty
StringBuilder 기능
in-buffer의 크기를 변경할 수 있기 때문에 속도가 느릴 수 있다.
기능 | Code |
기본자료형을 문자열에 추가 | sb.append(int i) |
문자열 일부를 삭제 | sb.delete(start, end) |
문자열 추가 | sb.insert(offset, str) |
문자열 변경 | sb.replace(start, end, str) |
문자열 일부 추출 | sb.substring(start, end) |
▶ replace()
public class strbuilderReplace {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Day");
sb.append("Tuesday").append("Sunday").append("Wednesday");
//인덱스 1~5를 HELLO로 바꿈
sb.replace(1, 5, "HELLO");
System.out.println(sb);
}
}
▶ delete()
public class strbuilderDelete {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Day");
sb.append("Tuesday").append("Sunday").append("Wednesday");
sb.delete(5, 8);
System.out.println(sb);
}
}
▶ append()
public class strbuilderAppend {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("day");
StringBuilder a = sb.append(10);
System.out.println(sb);
if(a == sb){
System.out.println("같다");
}
a.append("tuesday").append("sunday");
System.out.println(a);
}
}
참고 문헌 :
반응형
'JAVA' 카테고리의 다른 글
[Java] VSC JAVA 개발 환경 구축 (0) | 2022.06.03 |
---|---|
[Java] Class (0) | 2022.06.02 |
[Java] Stack 구현 (0) | 2022.05.31 |
[Java] Comment(주석), 클래스(class), 생성자, 정보은닉 (0) | 2022.05.31 |
[Java] 리터럴(Literal), 연산자 (0) | 2022.05.30 |