// String 변수에 값 저장하기
String a = "안녕하세요";
String b = new String("안녕하세요"); // 객체
String c = new String("안녕하세요");
String d = "안녕하세요"; // heap 영역에 constant pool에 저장되고 재활용이 된다.(new로 생성 X)
System.out.println(a);
System.out.println(b);
// String끼리 값 비교하기
// == 으로 비교를 하는 것은 stack영역에 저장된 주소값을 비교한 것이다.
// String에서 값을 비교하려면 .equals() 사용해야 한다.
System.out.println(a == d); // true
System.out.println(b == c); // false : 값을 비교한 것이 아니라 객체의 주소가 같은지를 비교한 것
System.out.println(a == b); // false
System.out.println(a.equals(b)); // true
II. 문자열과 숫자 사이의 변환 (자료형 변환)
// 1. 숫자 -> 문자열
int number1 = 3; // => "3"
// 별로 안좋은 방법
String str1 = number1 + ""; // 숫자 + 문자 = 문자
System.out.println(str1);
// 정석 방법
String str2 = String.valueOf(number1);
System.out.println(str2);
// 2. 문자열 -> 숫자
String str3 = "5";
int number2 = Integer.parseInt(str3);
number2 = Integer.valueOf(str3);
System.out.println(number2);
III. 문자열 유용한 함수들의 활용
String s1 = "eclipse";
// charAt: n번째 index에 무슨 문자가 있는지 확인
System.out.println("charAt:" + s1.charAt(4));
// contains: 특정 문자열이 문자열에 포함되어 있는지 확인
System.out.println("contains:" + s1.contains("lip"));
// startsWith: 특정 문자열로 시작하는지 확인
System.out.println("startsWith:" + s1.startsWith("ecl"));
// endsWith: 특정 문자열로 끝나는지 확인
System.out.println("endsWith:" + s1.endsWith("aaa"));
// length: 문자열의 길이를 확인. 알파벳이 몇 개인지
System.out.println("length:" + s1.length());
// replace: 포함된 문자열 부분을 교체
String s2 = "내가 지금 먹고싶은 것은 치킨이다.";
s2 = s2.replace("치킨", "떡볶이"); // 꼭 다시 저장해야한다.
System.out.println("replace:" + s2);
// split: 특정 스트링을 기준으로 잘라서 배열에 넣는다.
String s3 = "apple,melon,grape";
String[] fruits = s3.split(",");
System.out.println("split:" + fruits[0] + " " + fruits[1] + " " + fruits[2]);
// substring: 문자열을 자른다.
String s4 = "javastudy";
System.out.println("substring:" + s4.substring(4)); // study
// begin index: 시작 인덱스
// end index: 자르고 싶은 끝 인덱스 + 1
System.out.println("substring param 2:" + s4.substring(0, 4)); // java
System.out.println("substring param 2:" + s4.substring(4, 9)); // study
IV. 문자열 입력 받기
Scanner scan = new Scanner(System.in);
String word = scan.next(); // 단어
System.out.println(word);
scan.nextLine(); // 불필요한 엔터를 날려버린다.
String text = scan.nextLine(); // 문장(스페이스바 포함)
System.out.println(text);
System.out.println("끝");
scan.close();
}