[String 클래스]
다른 클래스와 다르게 new를 사용하지 않고도 객체를 저장할 수 있는 클래스.
//형식
String 변수명 = "문자열";
package day20;
import java.util.*;
public class StringTest1 {
public static void main(String[] args) {
String str = "java";
String str2 = "java"; //주소값을 참조할때 jvm이 heap에 저장된 "java"의 주소값을 str2에 저장
//그래서 둘이 참조한 주소가 같아 같음으로 나옴."java"가 같다고 아니라 주소가 같다.
System.out.println("str="+str);
System.out.println("str2="+str2);
String str3 = new String("java"); // 새로운 객체에 "java"저장.
System.out.println("Str3="+str3);
if(str==str2) {
System.out.println("str==str2:같다");
}else {
System.out.println("str==str2:같지 않다.");
}
String res = str==str3?"같다":"같지 않다";
System.out.println("str==str3:"+res);
String res2 = str.equals(str2)?"같다":"같지 않다";
String res3 = str.equals(str3)?"같다":"같지 않다";
//equals
System.out.println("str==str2:"+res2);
System.out.println("str==str3:"+res3);
//String : 사용자의 편리성을 위해 만들어진 클래스.
Scanner sc = new Scanner(System.in);
System.out.print("어떤 동물이 우나요?>");
String animal = sc.nextLine();
// if(animal == "고양이") {
// System.out.println("고양이는 야옹");
// }else if(animal == "강아지") {
// System.out.println("강아지는 멍멍");
// } // 실행안됨.
switch(animal) {
case "고양이" : System.out.println("고양이는 야옹");break;
case "강아지" : System.out.println("강아지는 멍멍");break;
case "돼지" : System.out.println("돼지는 꿀꿀");
}
}
}
String equals 문자열을 비교해주는 클래스
API 보기!
-String이 가지고 있는 특징-
자바에서의 String 원본 불변의 법칙. (원본의 데이터를 훼손할 수 없다.)
<String의 불변의 법칙을 보완하기 위해.>
StringBuffer 클래스 : 문자열 조작에 좀 더 적합하게 만들어진 클래스
** 반드시 new로 객체 생성해야 함.
- 재구축 : 연결(append) 삽입(insert) 삭제(delete)
package day20;
public class StringTest3 {
public static void main(String[] args) {
//StringBuffer은 정보클래스
StringBuffer sb = new StringBuffer("Hello java!!");
System.out.println("sb="+sb.toString());
//toString은 모든 메서드가 가지고 있다.오버라이딩을 하되 본인이 가지고 있는 값을 출력.
//String은 객체들을 관리하는 기능 클래스
// String str[] = {"java","jsp","framework"};
// System.out.println(str);//
sb.append("jsp!!");
System.out.println("sb="+sb);
sb.insert(12, "web");
System.out.println("sb="+sb);
sb.delete(6,12);
System.out.println("sb="+sb);
}
}
package day20;
import java.util.*;
public class Day20_02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("문장 입력:");
String str = sc.nextLine();
System.out.println("입력된 문장:"+str);
System.out.print("거꾸로 문장:");
for(int i=str.length()-1;i>=0;i--) {
System.out.print(str.charAt(i));
}
System.out.println();
System.out.println("--------------");
System.out.println("입력된 문장:"+str);
System.out.print("거꾸로 문장:");
StringBuffer sb = new StringBuffer(str);
System.out.println(sb.reverse());
}
}
[StringTokenizer]
-문자열로부터 토큰을 추출하는 기능의 클래스
-열거형 클래스 : 가공된 데이터를 나열 제시.
ㄴ이미 가공되어있는 데이터를 그대로 제공. (모든 요소에 접근)
ㄴ인덱스가 아닌 커서로 요소 접근.
1. 내 뒤에 데이터 있니?
2. 그럼 그 데이터 가져와.
3. while 제어문.
package day20;
import java.util.*;
public class StringTokenizerTest {
public static void main(String[] args) {
String fruit = "사과,포도,배,딸기,바나나";
String str = "이제 10분 남음! 힘내세요! 오늘 축구봐도 돼요. 4일 공부하고 오세요.";
StringTokenizer st = new StringTokenizer(fruit,",");
StringTokenizer st2 = new StringTokenizer(str);
//열거형은 인덱스가 아닌 커서로 위치를 파악할 수 있다.
//목적 : 내가 가지고 있는 문장을 구분자로 쪼개줘.
while(st.hasMoreTokens()) {// 내 뒤에 데이터가 있니?
String temp = st.nextToken();//있다면 temp에 담아줘(있으면 가져와)
System.out.println(temp);
}
System.out.println("---------------------------");
while(st2.hasMoreTokens()) {// 내 뒤에 데이터가 있니?
String temp = st2.nextToken();
System.out.println(temp);
}
}
}
- 커서 :BOF~EOF
- 조건에 의한 반복하는 while이 담당.
- import java.util.*; 을 불러와야함.
StringBuffer 과 String중에 StringBuffer가 먼저 생김.
'개발자 > 백엔드 웹 개발자 과정(국비)' 카테고리의 다른 글
| 2022년 12월 08일 _ 22회차 (Thread 스레드) (0) | 2022.12.08 |
|---|---|
| 2022년 12월 07일 _ 21회차 (collection, generic,vector,hashtable) (0) | 2022.12.07 |
| 2022년 12월 1일 _ 19회차 (Exception 예외) (0) | 2022.12.01 |
| 2022년 11월 30일 _ 18회차 (실습.) (0) | 2022.11.30 |
| 2022년 11월 29일 _17회차 (final ,인터페이스) (0) | 2022.11.30 |